Mac 下XPCom开发遇到的问题

作者:刘志义

一直从事Windows环境下开发,对Mac的了解非常少.近来要做一个Mac环境下的Firefox扩展开发,所以只能赶鸭子上架,边学边做。Firefox扩展开发分为两部分:JavaScript XPCom。网上有太多好的教材可以参考,所以这里只是记录些我在Mac下开发XPCom遇到的小问题。

1.       文件格式

Firefox 的文件格式是i386,而在支持64位的Mac机器下,很多安装包和编译默认都是生成x86-64格式,导致不能正确解析,所以需要进行确认调整。当然我们xpcom也必须为i386.

2.       XPT文件生成

如果你用xpidl来生成XPT文件的时候,会出现这个错误:

dyld: Library not loaded: /opt/local/lib/libintl.3.dylib

Referenced from: /Users/varmaa/xulrunner-sdk/bin/./xpidl

        Reason: image not found

Trace/BPT trap

可以通过安装MacPorts来解决这个问题。需要注意的是,它默认是根据硬件来确定生成文件的格式是x86-64还是i386. 所以我们需要修改配置文件来强制其生成i386.

配置文件:   opt/local/etc/macports.conf

修改    #build_arch  ->  build_arch  i386

MacPorts的安装:https://developer.mozilla.org/En/Developer_Guide/Build_Instructions/Mac_OS_X_Prerequisites

3.       Debug模式下的编译

编译的时候可能会出现release编译没有问题,但是debug模式下有很多错误。这时候很可能是编译配置所导致的。在配置中加入如下选项应该能解决你的问题:

-Wl,-executable-path

-Wl,/path/to/sdk/bin

 

4.       Cocoa的使用

XPCom 的开发过程中,我们不可避免的会用到Cocoa。但这时候你会发现,在CPP文件中调用Cocoa会出现一些错误。这是因为编译机制的问题导致的。可以通过修改文件类型为”sourcecode.cpp.objcpp来解决这个问题。

你可能感兴趣的:(JavaScript,windows,cocoa,扩展,firefox,library)