【问题标题】:What lib in the gecko 1.9.3 SDK do I link against to use moz_xmalloc()?我要链接 gecko 1.9.3 SDK 中的哪个库以使用 moz_xmalloc()?
【发布时间】:2010-03-16 23:55:44
【问题描述】:

我正在尝试将我的 XPCOM 扩展与 1.9.3a3pre SDK 相关联,我得到以下信息:

错误 LNK2001:无法解析的外部符号 _moz_xmalloc

那么,我需要链接到什么库? documentation 没有说。

目前在 Windows 上,但我还需要它在 Mac 和 Linux(32 位/64 位)上构建。

编辑:现在有赏金。

编辑:更新:原来FF3.7被取消了。所以在FF4之前我不必担心这个。

【问题讨论】:

  • 我以为他们不久前切换到了 JMalloc。这个“xmalloc”是从哪里来的?
  • 我只是包含了一些 nsIBlahBlahBlah 头文件。如果您阅读帖子中的文档链接,它会解释他们在做什么。 x 的意思是“不能失败”。是的。

标签: mozilla linker-errors xpcom geckosdk


【解决方案1】:

我有同样的错误,链接到 mozalloc 有助于解决这个问题。

【讨论】:

  • mozalloc 不在我下载的 xulrunner sdk(适用于 Windows)中。你从哪里弄来的?
  • 我正在为 Thunderbird 编写一个扩展,并且在此之前我已经从源代码构建了 Thunderbird(使用最新的 comm-central),并且这个库位于 Thunderbird 构建目录的 mozilla/dist/lib 中,所以在您的情况可能不是解决方案。链接器是否说明了链接错误发生的位置(引用符号的对象是什么)?
  • xpcomglue_s.lib(nsCOMPtr.obj):错误 LNK2001:未解析的外部符号 _moz_xmalloc xpcomglue_s.lib(nsComponentManagerUtils.obj):错误 LNK2001:未解析的外部符号 _moz_xmalloc
  • 很确定你对我需要链接的内容也是正确的......我只是想知道从哪里得到它。也许他们还没有在 Windows 上构建它,所以 xulrunner SDK 没有它?也许我只需要等待测试版?
  • 你能给我 mozalloc.lib 的链接吗,我在 Mozilla Central 最新的 SDK 中找不到它。
【解决方案2】:

在 C++ 预处理器定义属性中定义“XPCOM_GLUE”。它将修复链接错误。

【讨论】:

  • 我已经定义了'XPCOM_GLUE'。我仍然收到与 xpcomglue_s.lib(GenericFactory.obj) 相同的错误:错误 LNK2001:未解析的外部符号 __imp__moz_xmalloc。会有什么问题?
【解决方案3】:

尝试在编译扩展时定义 MOZ_NO_MOZALLOC,然后您将获得一个使用 CRT 分配器的 DLL。 (不要忘记为 XPCOM 兼容的内存使用 NS_* 分配器。)

【讨论】:

  • 啊,这跟我的兴趣有关!我会试一试。
  • 这对我不起作用,即使在使用了get: unresolved external symbol __imp__moz_xmalloc
【解决方案4】:
  1. C++->预处理器->定义属性中添加MOZ_NO_MOZALLOC

  2. Linker->Input->Additional Dependencies中使用xpcomglue_s_nomozalloc.lib而不是xpcomglue_s.lib

会好的!

【讨论】:

    【解决方案5】:

    提醒注意: 另一个可能导致此问题的选项,即使项目中的所有其他内容似乎都已正确配置,指向错误的 libs 文件夹 - 例如 64 位构建的 32 位版本.

    edit v40 mozalloc.lib 已更名为 mozglue.lib 并有一些额外的方法。

    edit v41 mozglue.lib 已更名为 mozcrt.lib

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-10
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      相关资源
      最近更新 更多