什么CMake变量用于在XCode中设置C标准库?

什么CMake变量用于在XCode中设置C标准库?,第1张

概述我有一个纯C 11 DLL(没有任何依赖)我已经能够在 Linux和Windows上编译一段时间,现在使用CMake生成项目文件,并使/ MSVC在每个相应的本机系统中进行编译. 我现在想在OSX上编译,我已经遇到很多问题,让CMake在XCode中设置正确的项目设置来编译DLL. 软件版本: XCode v5.0CMake v2.8.12 相关的CMake脚本代码: # Set output 我有一个纯C 11 DLL(没有任何依赖)我已经能够在 Linux和windows上编译一段时间,现在使用CMake生成项目文件,并使/ MSVC在每个相应的本机系统中进行编译.

我现在想在OSX上编译,我已经遇到很多问题,让CMake在XCode中设置正确的项目设置来编译DLL.

软件版本:

XCode v5.0CMake v2.8.12

相关的CMake脚本代码:

# Set output directory if Apple OSX:IF(${CMAKE_SYstem_name} MATCHES "Darwin")    message("CMAKE HAS DETECTED A OSX SYstem - BUILDING FOR XCODE!")    set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvm.clang.1_0")    set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++0x")    set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_liBRARY "libc++")    set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=c++0x -stdlib=libc++")    IF(CMAKE_BUILD_TYPE MATCHES Release)        SET(liBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../bin/OSX/Release)    ENDIF(CMAKE_BUILD_TYPE MATCHES Release)    IF(CMAKE_BUILD_TYPE MATCHES DeBUG)        SET(liBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../bin/OSX/DeBUG)    ENDIF(CMAKE_BUILD_TYPE MATCHES DeBUG)ENDIF(${CMAKE_SYstem_name} MATCHES "Darwin")

但是,这些设置无法正确地进入XCode项目文件:

您可以看到CMake命令进入“其他C标志”区域.但XCode仍然无法编译.但是,如果我将“C标准库”变量更改为“libc”,那么它将编译好.

注意:我可以发布编译错误日志,但是我认为上面的内容正确地标识了根本原因 – 我只需要知道CMake命令实际设置上面的正确的XCode属性.

解决方法 对于最小的测试项目,以下工作是:
SET(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_liBRARY "libc++")

也许这干扰了以下行:

set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -std=c++0x -stdlib=libc++")

还有一句话就是这个意思,有没有关于意图的${CMAKE_C_FLAGS},还是你真的意味着${CMAKE_CXX_FLAGS}?

总结

以上是内存溢出为你收集整理的什么CMake变量用于在XCode中设置C标准库?全部内容,希望文章能够帮你解决什么CMake变量用于在XCode中设置C标准库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1113550.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存