Я готовлю свое дополнение C ++ Firefox для следующего Firefox — v.26 — но я не могу собрать его с помощью бета-версии xulrunner-sdk 26 (это нормально с предыдущими основными версиями). Как и прежде, я связываю его с xpcomglue_staticruntime_s.lib, но у меня есть следующие ошибки:
xpcomglue_staticruntime_s.lib (nsStringAPI.obj): ошибка LNK2019: неразрешенный внешний символ _чертенокСсылка _PR_sscanf в функции «public: __int64 __thiscall nsAString :: ToInteger64 (перечисление tag_nsresult *, unsigned int) const» (? ToInteger64 @ nsAString @@ QBE_JPAW4tag_nsresult @@ I @ Z)
xpcomglue_staticruntime_s.lib (nsCRTGlue.obj): ошибка LNK2019: неразрешенный внешний символ _чертенок_PR_Now, на который ссылается функция «void __cdecl NS_MakeRandomString (char *, int)» (? NS_MakeRandomString @@ YAXPADH @ Z)
Я добавил все остальные библиотеки из этого SDK (не только xul.lib и mozalloc.lib, но также crmf.lib и т. Д.), Это не помогает. Ни один из них не работает с использованием xpcomglue_s.lib или xpcomglue_s_nomozalloc.lib вместо xpcomglue_staticruntime_s.lib
Теперь я могу создать аддон успешно, только если я использую xpcomglue.lib или xpcomglue_staticruntime.lib, но тогда он не работает корректно с Firefox — NS_GetServiceManager () завершается ошибкой. Есть некоторые предупреждения компоновщика с этими сборками.
Какие настройки мне нужны, чтобы он связывался с xpcomglue_staticruntime_s.lib или работал в других случаях?
Платформа: MS Windows, MS Visual Studio 2010.
Еще две детали:
Это подтвержденная ошибка в SDK. В Mozilla 28 запланировано исправление (OMG!). Подробности смотрите здесь:
https://bugzilla.mozilla.org/show_bug.cgi?id=937005
Тем временем я обнаружил, что могу использовать nss3.lib из более старых версий, протестированных с этой:
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/25.0.1/sdk/xulrunner-25.0.1.en-US.win32.sdk.zip
Других решений пока нет …