CMake 是否可以在 Mac OS X 上指定基本 SDK
Can CMake specify the base SDK on Mac OS X?
有谁知道如何指定Mac OS X SDK来构建CMake?我已经搜索了cmake mac "base sdk"
但这没有任何结果。
我正在使用CMake来生成Unix生成文件。
更新
在我的 10.6 安装中,我看到/Developer/SDKs
具有以下内容:
- MacOSX10.4u.sdk
- MacOSX10.5.sdk
- MacOSX10.6.sdk
也许我可以让 CMake 以某种方式将这些路径之一传递给编译器?
此外,我的 10.7 安装只有:
- MacOSX10.6.sdk
- MacOSX10.7.sdk
这是否意味着它只能为这些平台构建?
更新 2
该死的,我刚刚意识到实际上我没有使用Xcode - 所以这可能会影响一些答案。另外,我现在正在尝试使用Mac OS X 10.8开发人员预览版(有一些奇怪的结果,请参阅我的答案)。
在尝试了 sakra 的有效答案(就 CMake 应该表现而言有效)不成功后,我进行了挖掘,发现如果我为编译器指定 --sysroot
标志,它似乎使用了正确的 SDK!
但是,我现在在针对 10.7 编译时看到此错误(我在 10.8 中看不到):
Undefined symbols for architecture i386:
"_NXArgv", referenced from:
execSelfNonDaemonized() in libarch.a(CArchDaemonUnix.o)
CArchDaemonUnix::daemonize(char const*, int (*)(int, char const**)) in libarch.a(CArchDaemonUnix.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [bin/synergyc] Error 1
make[1]: *** [src/cmd/synergyc/CMakeFiles/synergyc.dir/all] Error 2
make: *** [all] Error 2
注意:CArchDaemonUnix
是Synergy(我正在从事的一个开源项目)中的一个类。
更新:
刚刚在我的 10.6 安装上尝试了这个,我在尝试为 10.5 编译时遇到链接器错误 - 事实证明您还需要指定MACOSX_DEPLOYMENT_TARGET
环境变量!
无论如何,这是我在Mountain Lion(OSX 10.8)上运行时为10.7编译时所做的:
命令行:
MACOSX_DEPLOYMENT_TARGET=10.7
cmake -G "Unix Makefiles" -DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.7.sdk/ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.7 ../..
CMakeLists.txt:
set(CMAKE_CXX_FLAGS "--sysroot ${CMAKE_OSX_SYSROOT} ${CMAKE_CXX_FLAGS}")
我希望这对某人有所帮助! :-)
在 CMakeList 上添加以下命令.txt
套装(CMAKE_OSX_SYSROOT macOSX10.10)
套装(CMAKE_OSX_DEPLOYMENT_TARGET "10.5")
这应该没问题。
您可以在配置项目时将变量CMAKE_OSX_SYSROOT
设置为所选 SDK。 例如:
cmake -DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.4u.sdk/ ..
请参阅此处的文档。
另请注意,2.8.8 之前的 CMake 版本不支持 Xcode 4.3。
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- "ostream &os"有什么用?
- libprotobuf 检查在 Mac OS 上执行程序时失败
- Vulkan SDK 版本 1.1.85.0 在 Kubuntu 18.10 上链接
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何在 MAC OS c/c++ 中阻止 USB 存储设备
- 升级到 Windows 10 版本 1809 SDK 后,我无法编译使用 C++/WinRT 的项目
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 在设计 SDK 时,我是否应该在 C++ 头文件中完全隐藏内部类?
- Eventloop 卡住:NAO C++ SDK OnFaceDetection 示例
- 构建失败错误:无法使用 qibuild 构建C++ SDK Helloworld
- Microsoft C++ 用于图形 API 的 Rest SDK
- 在 c++ 中检查 Windows OS 服务器版本
- 如何检索 Steamwork SDK 的当前版本
- 佳能SDK无法从相机下载图片
- Azure IoT SDK C 设置macOS(Mac OS X)开发环境
- qt 5.7 + Xcode 8.1 + OS x El Capitan - 无法解析 SDK 的 'macosx' 路径
- SFML 2.1 和 Xcode 4.6.3 - "The specified SDK " 当前的 OS X " does not appear to have all of the necessar
- CMake 是否可以在 Mac OS X 上指定基本 SDK
- 避免颜色空间转换时,比特,Mac OS X 10.11 SDK