问题
我有一个从火呼吸创建的浏览器插件在 mac osx 10.8 上运行良好。但是我在 mac osx 10.7 上收到"无法加载 UploaderPlugin(我的插件名称("错误。
我的插件项目中包含几个外部库。经过几个小时的工作,我发现当我从项目中删除 libcurl 库时,错误消失了,每次我尝试包含 libcurl 库时都会出现相同的错误。
所以很明显,这个错误与 libcurl 库有关。由于libcurl依赖于openssl和zlib。我再次从源代码编译了三个库,但同样的错误仍未解决。
来自控制台的错误消息
13-10-10下午12:56:33.500 Google Chrome Helper EH:加载时出错/users/admin/Library/Internet Plug-Ins/npUploaderPlugin.plugin/Content/MacOS/npUploaderPlugin: dlopen(/Users/admin/Library/Internet Plug-Ins/npUploaderPlugin.plugin/Content/MacOS/npUploaderPlugin, 262(: 找不到符号:_CAST_ecb_encrypt 引用自:/Users/admin/Library/Internet Plug-Ins/npUploaderPlugin.plugin/Content/MacOS/npUploaderPlugin 预期在:/usr/lib/libSystem.B.dylib in/users/admin/Library/Internet Plug-Ins/npUploaderPlugin.plugin/Content/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返回错误
13-10-10 下午12:56:33.501 [0x0-0x2a82a8].com.google.Chrome: [10071:2819:1010/125633:错误:webplugin_impl.cc(258(] 无法初始化插件
从错误 msg 中决定,我可以看到主要问题是找不到符号_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
库库尔版本:7.26.0
OpenSSL版本:1.0.1C
兹利布版本:1.2.7
C-战神版本:1.10.0
任何建议将不胜感激。如果您需要更详细的信息,请随时通知我。
它实际上可能与 libcurl 直接相关,也可能不直接相关; 这可能是 curl 由于您链接它的方式而导致链接的内容。我的第一个猜测是您需要将部署目标设置为 10.7;如果在 10.8 上构建,则默认情况下,将使用的目标和 SDK 是 10.8 目标和 10.8 SDK。 通常,您可以安全地使用 10.8 SDK 为 10.7 进行构建,但可能需要设置部署目标。
您可以通过向准备脚本添加-D CMAKE_OSX_DEPLOYMENT_TARGET=10.8
来做到这一点:
../firebreath/prepmac.sh ./projectDir ./buildDir -D CMAKE_OSX_DEPLOYMENT_TARGET=10.8