我正在尝试将我的 XPCOM 扩展与 1.9.3a3pre SDK 链接起来,我得到以下信息:
错误 LNK2001:未解析的外部符号 _moz_xmalloc
那么,我需要链接到什么库?文档没有说 。
这现在在 Windows 上,但我也需要它在 Mac 和 Linux(32 位/64 位)上构建。
编辑:现在有赏金。
编辑:更新:原来FF3.7被取消了。所以在FF4之前我不必担心这个。
我正在尝试将我的 XPCOM 扩展与 1.9.3a3pre SDK 链接起来,我得到以下信息:
错误 LNK2001:未解析的外部符号 _moz_xmalloc
那么,我需要链接到什么库?文档没有说 。
这现在在 Windows 上,但我也需要它在 Mac 和 Linux(32 位/64 位)上构建。
编辑:现在有赏金。
编辑:更新:原来FF3.7被取消了。所以在FF4之前我不必担心这个。
我有同样的错误,链接到 mozalloc 有助于解决这个问题。
尝试在编译扩展时定义 MOZ_NO_MOZALLOC,然后您将获得一个使用 CRT 分配器的 DLL。(不要忘记为 XPCOM 兼容的内存使用 NS_* 分配器。)
XPCOM_GLUE
在 C++ 预处理器定义属性中定义“ ”。它将修复链接错误。
添加C++->预处理器->定义MOZ_NO_MOZALLOC
属性。
在链接器->输入->附加依赖项中使用xpcomglue_s_nomozalloc.lib
而不是xpcomglue_s.lib
一切都会安好的!
提醒注意:即使项目中的所有其他内容似乎都已正确配置,另一个可能导致此问题的选项是指向错误的 libs 文件夹 - 例如 64 位构建的 32 位版本。
edit v40 mozalloc.lib
已将名称更改为mozglue.lib
并具有一些附加方法。
编辑 v41 mozglue.lib
已将名称更改为mozcrt.lib