我应该链接 gecko 1.9.3 SDK 中的哪个库来使用 moz_xmalloc()?
我尝试将我的 XPCOM 扩展链接到 1.9.3a3pre SDK,并得到以下信息:
错误LNK2001:无法解析的外部符号_moz_xmalloc
那么,我需要链接到哪个库? 文档没有说明。
目前在 Windows 上运行,但我也需要它在 Mac 和 Linux(32 位/64 位)上构建。
编辑:现在有赏金。
编辑:更新:原来FF3.7被取消了。所以直到FF4之前我都不必担心这个问题。
I'm trying to link my XPCOM extension against the 1.9.3a3pre SDK and I get the following:
error LNK2001: unresolved external symbol _moz_xmalloc
So, what lib do I need to link to? The documentation doesn't say.
This is on Windows right now, but I'll need it to build on Mac and Linux (32bit/64bit) as well.
Edit: Now with bounty.
Edit: Update: Turns out FF3.7 was cancelled. So I don't have to worry about this until FF4.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我有同样的错误,链接到 mozalloc 有帮助。
I have same error, and linking to mozalloc helps for that.
在 C++ 预处理器定义属性中定义“
XPCOM_GLUE
”。它将修复链接错误。define '
XPCOM_GLUE
' in C++ Preprocessor Definition property. It will fix the linking error.尝试在编译扩展时定义 MOZ_NO_MOZALLOC,然后您将获得一个使用 CRT 分配器的 DLL。 (不要忘记对 XPCOM 兼容内存使用 NS_* 分配器。)
Try defining MOZ_NO_MOZALLOC when compiling your extension, you will then get a DLL that uses your CRT's allocators. (Don't forget to use the NS_* allocators for XPCOM-compatible memory.)
在C++->预处理器->定义属性中添加
MOZ_NO_MOZALLOC
。在链接器->输入->其他依赖项中使用
xpcomglue_s_nomozalloc.lib
而不是xpcomglue_s.lib
就可以了!
Add
MOZ_NO_MOZALLOC
in C++->Preprocessor->Definition property.Use
xpcomglue_s_nomozalloc.lib
instead ofxpcomglue_s.lib
in Linker->Input->Additional DependenciesIt will be OK!
提醒注意:即使项目中的其他所有内容似乎配置正确,也可能导致此问题的另一个选项是指向错误的 libs 文件夹 - 例如 64 位构建的 32 位版本。
edit v40
mozalloc.lib
已更名为mozglue.lib
并具有一些附加方法。编辑 v41
mozglue.lib
已更名为mozcrt.lib
reminder note: another option that can cause this even though everything else seems to be configured correctly in the project, is pointing at the wrong libs folder - such as 32 bit version for a 64 bit build.
edit v40
mozalloc.lib
has changed name tomozglue.lib
and has some additional methods.edit v41
mozglue.lib
has changed name tomozcrt.lib