我更新了Xcode,它还更新了MacOS SDK。我需要使用较旧的SDK构建Poco以支持较旧的MacOS版本。我想用MacOS版本10.11构建。我已经下载了传统的MacOs SDK,并希望通过某种标志为其提供路径。
我的构建命令如下所示:
./configure --omit=Data/ODBC,Data/MySQL,Zip,JSON,MongoDB,PageCompiler,PageCompiler/File2Page,CppUnit --no-tests --no-samples --cflags=-fPIC --sqlite-thread-safe=1 --include-path=$(pwd)/$(openssldir)/$(opensslincdirname) --library-path=$(pwd)/$(openssldir) && \
make clean && \
make
我已经尝试添加标记:
CFLAGS="-isysroot ~/SDKs/MacOSX10.11.sdk -mmacosx-version-min=10.11
要检查构建的库是否使用正确的SDK构建,我使用了otool
命令:(这应该是它的样子)
otool -l filename.dylib
cmd LC_VERSION_MIN_MACOSX
cmdsize 16
version 10.8
sdk 10.11
对于xcodeproject,这有效:
xcodebuild -sdk macosx10.11 -project projectname.xcodeproj
答案 0 :(得分:0)
在测试了多个不同的标志后,我找到了一个按预期工作的解决方案。
以下是与适当的MACOS SDK参考相同的make命令:
./configure --omit=Data/ODBC,Data/MySQL,Zip,JSON,MongoDB,PageCompiler,PageCompiler/File2Page,CppUnit --no-tests --no-samples --cflags=-fPIC --sqlite-thread-safe=1 --include-path=$(pwd)/$(openssldir)/$(opensslincdirname) --library-path=$(pwd)/$(openssldir) && \
make clean && \
make MACOSX_DEPLOYMENT_TARGET=10.8 MACOSX_SDK_VERSION_MIN=10.9 SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
我从https://github.com/devernay/xcodelegacy下载了旧版MacOS SDK并将其放入Xcode SDK文件夹中。值得注意的是,在更新XCode时可能会清除此文件夹,因此使用符号链接到sdk目录并将旧版SDK保留在其他位置可能是有意义的。