使用旧版 MacOs SDK 构建 Poco 库
Building Poco libraries with legacy MacOs SDK
我更新了 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
在测试了多个不同的标志后,我找到了一个按预期工作的解决方案。
下面是带有正确 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 保留在其他地方可能是有意义的。
我更新了 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
在测试了多个不同的标志后,我找到了一个按预期工作的解决方案。
下面是带有正确 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 保留在其他地方可能是有意义的。