我尝试构建AllJoynChat示例并收到以下错误消息:
ld:警告:找不到选项' -L / build / Debug-iphoneos' ld:找不到-lssl的库 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我正在使用Xcode 7.2和iOS 9.2 SDK。有什么帮助吗?
答案 0 :(得分:0)
看起来您的构建无法找到openssl库。
以下步骤完全如下:
将AllJoyn SDK包解压缩到开发系统上的文件夹中。
将OpenSSL源下载并复制到开发系统上的单独文件夹中,而不是AllJoyn SDK下。
导航到Finder中的OpenSSL源代码顶部文件夹,并将从GitHub下载的openssl.xcodeproj文件夹复制到此文件夹中。
在Xcode中打开openssl.xcodeproj。
在Xcode中,为每个构建加密目标(libssl.a和libcrypto.a) 通过选择Product-> Build For->(您想要的配置),您的iOS项目所需的配置(调试|发布)和平台(iphoneos | iphonesimulator)的组合。
在步骤1中创建的顶级OpenSSL文件夹下创建一个名为“build”的新文件夹。
在中找到您的OpenSSL构建产品文件夹(即:Debug-iphoneos) / Users // Library / Developer / Xcode / DerivedData / XXXXXXXXXXXXX-openssl / Build / Products文件夹,并将所有 - 文件夹(如Debug-iphoneos)复制到构建 在步骤6中创建的文件夹。
您现在应该拥有与此类似的包含libssl和libcrypto的文件夹结构 对于您在步骤5中构建的每个$(CONFIGURATION) - $(PLATFORM_NAME):
的OpenSSL 1.0.1c
build
Debug-iphoneos
libssl.a
libcrypto.a
Debug-iphonesimulator
libssl.a
libcrypto.a
定义环境变量OPENSSL_ROOT = 每当使用AllJoyn SDK构建项目时,都需要存在此环境变量。
9a上。对于Mac OS X 10.7到10.9,要设置环境变量,请打开终端窗口并键入 以下内容:
launchctl setenv OPENSSL_ROOT <path to top level folder containing openssl>
重新启动XCode。
9b上。在Mac OS X 10.10中,环境变量处理已更改。最重要的是,OPENSSL_ROOT 必须在启动Xcode之前定义(Xcode不会拾取新的或更改的变量 发射后)。因此,要设置环境变量,请打开终端窗口并键入 以下内容:
launchctl setenv OPENSSL_ROOT <path to top level folder containing openssl>
sudo killall Finder
sudo killall Dock
重启XCode。
如果您已经完成了上述检查步骤9,因为不同版本的OS X的步骤不同,您可能使用的是尚未更新说明的最新版本。