【问题标题】:Build C++ XPCOM dependency error构建 C++ XPCOM 依赖错误
【发布时间】:2013-11-20 05:11:10
【问题描述】:

我正在构建我的 C++ XPCOM 以使用 Gecko sdk 24 进行扩展,但出现以下错误:

Error   15   error LNK2001: unresolved external symbol __imp__NS_CStringContainerInit2   xpcomglue_s_nomozalloc.lib   
Error   16   error LNK2001: unresolved external symbol __imp__NS_CStringContainerFinish   xpcomglue_s_nomozalloc.lib   
Error   17   error LNK2001: unresolved external symbol __imp__NS_CStringContainerInit   xpcomglue_s_nomozalloc.lib   
Error   18   error LNK2001: unresolved external symbol __imp__NS_GetServiceManager   xpcomglue_s_nomozalloc.lib   
Error   19   error LNK2001: unresolved external symbol __imp__NS_GetComponentManager   xpcomglue_s_nomozalloc.lib   
Error   20   fatal error LNK1120: 5 unresolved externals   ..\..\..\firefoxExtension\xpi\components\gecko24\nsWin32Util.dll   

预处理器:
MOZ_NO_MOZALLOC
XP_WIN
XP_WIN32

附加依赖: xpcomglue_s_nomozalloc.lib

我曾经使用 Gecko 10 构建 XPCOM,并且依赖项是
nspr4.lib
xpcom.lib
xpcomglue_s_nomozalloc.lib
但是我在 Gecko 24 中找不到 nspr4.lib 和 xpcom.lib,那么 Gecko 24 的正确设置是什么?

【问题讨论】:

    标签: c++ firefox firefox-addon xpcom


    【解决方案1】:

    尝试链接 xul.lib?请注意,这是一种临时解决方法;上游对二进制扩展非常敌对,如果可能的话,你可能会通过 JS-ctypes 来做事。不过,还没有针对 nomozalloc 进行测试;不知道效果如何。

    【讨论】:

    • 是的,您的解决方法确实有助于成功构建。这个 XPCOM 与 Windows 原生 API 交互,所以很难用 JS 重写。
    • v.25 也应该没问题,准备好解决 26 的问题:stackoverflow.com/questions/20190810/…
    猜你喜欢
    • 2014-12-25
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2012-06-16
    • 2020-03-27
    • 2017-07-07
    • 1970-01-01
    相关资源
    最近更新 更多