firefox — ошибка сборки C ++ XPCOM

Я строю свой 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

Я использовал для сборки XPCOM с Gecko 10 и зависимости
nspr4.lib
xpcom.lib
xpcomglue_s_nomozalloc.lib
Но я не могу найти nspr4.lib и xpcom.lib в Gecko 24, так каковы правильные настройки для Gecko 24?

0

Решение

Попробуйте связать с xul.lib? Обратите внимание, что это временный обходной путь; апстрим становится довольно откровенно враждебным по отношению к двоичным расширениям, и вам, вероятно, повезет больше, если вы будете делать это с помощью JS-ctypes. Хотя не проверял это против номозаллока; не уверен, насколько хорошо это будет работать.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]