1

我刚刚开始为 Mac 开发应用程序。

现在我在使用最新的 openssl 导出应用程序时遇到问题。

  1. 我正在下载并制作“.a”和“.dylib”文件。
  2. 我将它导入 XCode 项目。
  3. 它可以在我的 MAC-PC 上运行。但是当我为另一台 MAC-PC 导出应用程序时。因为:bug library not loaded: /usr/local/..../libcrypto.1.0.0.dylib
  4. 我尝试使用运行脚本:

    EXECFILE=${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}

    install_name_tool -id @executable_path/../Frameworks/libcrypto.1.0.0.dylib 'lib 的路径'/libcrypto.1.0.0.dylib install_name_tool -id @executable_path/../Frameworks/libssl.1.0.0.dylib ' lib'/libssl.1.0.0.dylib 的路径

    TARGETID= otool -DX 'path to lib'/libcrypto.1.0.0.dylib NEWTARGETID=@executable_path/../Frameworks/libcrypto.1.0.0.dylib install_name_tool -change ${TARGETID} ${NEWTARGETID} ${EXECFILE}

    TARGETID1= otool -DX 'path to lib'/libssl.1.0.0.dylib NEWTARGETID1=@executable_path/../Frameworks/libssl.1.0.0.dylib install_name_tool -change ${TARGETID1} ${NEWTARGETID1} ${EXECFILE}。

我当然将复制文件添加到框架并将运行搜索路径设置为。

  1. 但最后,它仍然显示库未加载,如下所示:

    Dyld 错误消息:库未加载:/usr/local/ssl/lib/libcrypto.1.0.0.dylib 引用自:'path to app'/Contents/Frameworks/libssl.1.0.0.dylib 原因:找不到图像

任何人都可以帮我解决它。

非常感谢。

4

1 回答 1

2

我显然解决了这个问题:

./Configure darwin64-x86_64-cc -shared --openssldir="@rpath"

构建应用程序后,我将结果 dylibs 添加到Frameworks文件夹,并通过 install_name_tool 修改应用程序二进制文件:

install_name_tool -change /usr/lib/libcrypto.0.9.8.dylib\
 ../Frameworks/libcrypto.1.0.0.dylib BinaryName

install_name_tool -change /usr/lib/libssl.0.9.8.dylib\
 ../Frameworks/libssl.1.0.0.dylib BinaryName

bash 脚本

于 2015-04-11T16:02:06.247 回答