Плагин firebreath не может быть загружен на mac os 10.7

Вопрос

У меня есть плагин для браузера, созданный из firebreath, который отлично работает на mac osx 10.8. Но я получил ошибку «не удалось загрузить UploaderPlugin (название моего плагина)» из Chrome на mac osx 10.7.

В мой проект плагина включено несколько внешних библиотек. После нескольких часов работы я обнаружил, что когда я удалил библиотеку libcurl из своего проекта, ошибка исчезла, и эта же ошибка появляется каждый раз, когда я пытаюсь включить библиотеку libcurl.

Так что совершенно ясно, что ошибка как-то связана с библиотекой libcurl. Поскольку libcurl использует openssl и zlib. Я снова скомпилировал три библиотеки из исходного кода, но та же ошибка осталась нерешенной.

сообщение об ошибке из консоли

13-10-10 下午12:56:33.500 Помощник Google Chrome EH: Ошибка при загрузке /Users/admin/Library/Internet Plug-Ins/npUploaderPlugin.plugin/Contents/MacOS/npUploaderPlugin: dlopen(/Users/admin/Library/Internet Плагины/npUploaderPlugin.plugin/Contents/MacOS/npUploaderPlugin, 262): символ не найден: _CAST_ecb_encrypt Ссылка из: /Users/admin/Library/Internet Plug-Ins/npUploaderPlugin.plugin/Contents/MacOS/npUploaderPlugin Ожидается в: / usr/lib/libSystem.B.dylib в /Users/admin/Library/Internet Plug-Ins/npUploaderPlugin.plugin/Contents/MacOS/npUploaderPlugin

13-10-10 下午12:56:33.501 [0x0-0x2a82a8].com.google.Chrome: [10071:2819:1010/125633:ERROR:webplugin_delegate_proxy.cc(390)] PluginMsg_Init вернул false

13-10-10 下午12:56:33.501 [0x0-0x2a82a8].com.google.Chrome: [10071:2819:1010/125633:ERROR:webplugin_impl.cc(258)] Не удалось инициализировать подключаемый модуль


Судя по сообщению об ошибке, я вижу, что основная проблема заключается в том, что не удалось найти символ _CAST_ecb_encrypt. Я гуглил и ничего не беспокоился.

окружающая среда

mac os x 10.8 + chrome 28.0.1500.71 (отлично работает)

mac os x 10.7 + chrome 29.0.1547.22 beta (получил сообщение об ошибке)

огнедышащая версия: 1.7

версия libcurl: 7.26.0

версия openssl: 1.0.1c

версия zlib: 1.2.7

c-арес версия: 1.10.0

Любые советы будут оценены. И пожалуйста, не стесняйтесь сообщить мне, если вам нужна более подробная информация.


person jordan_tao    schedule 10.10.2013    source источник


Ответы (1)


На самом деле это может быть или не быть напрямую связано с libcurl; это может быть что-то, что curl вызывает связь из-за того, как вы его связываете. Мое первое предположение будет заключаться в том, что вам нужно установить цель развертывания на 10.7; если вы строите версию 10.8, по умолчанию цель и SDK, которые вы будете использовать, — это цель 10.8 и SDK 10.8. обычно вы можете безопасно использовать пакет SDK 10.8 для сборки 10.7, но вам может потребоваться установить цель развертывания.

Это можно сделать, добавив -D CMAKE_OSX_DEPLOYMENT_TARGET=10.8 в свой скрипт подготовки:

../firebreath/prepmac.sh ./projectDir ./buildDir -D CMAKE_OSX_DEPLOYMENT_TARGET=10.8
person taxilian    schedule 10.10.2013
comment
Фактически, я попытался установить цель развертывания на 10.7, но ошибка остается прежней. - person jordan_tao; 11.10.2013
comment
Тогда я бы попробовал построить его на коробке 10.7 и посмотреть, будет ли это иметь значение; вы также можете попробовать собрать с помощью SDK 10.7; Еще одна вещь, которую можно попробовать, - это связать фреймворк CommonCrypto, поскольку именно там живет символ, на который ссылается. - person taxilian; 11.10.2013