C++ Cmake:如何选择C++;标题
我想在使用C++ Cmake:如何选择C++;标题,c++,linux,gcc,cmake,clang,C++,Linux,Gcc,Cmake,Clang,我想在使用gcc和clang之间进行选择,还想在libstdc++和libc++之间进行选择。解释如何混合使用编译器和标准库。我可以通过调用cmake像CC=gcc-CCX=g++cmake…或使用CC=clang…在编译器之间进行选择 问题是,对于libstdc++我需要使用标志-I/usr/include/c++/5,对于libc++我需要使用-I/usr/include/c++/v1 出于可移植性的原因,我不想在CMakeListst.txt中包含上述路径,也不想将其作为命令行参数。有没有
gcc
和clang
之间进行选择,还想在libstdc++
和libc++
之间进行选择。解释如何混合使用编译器和标准库。我可以通过调用cmake
像CC=gcc-CCX=g++cmake…
或使用CC=clang…
在编译器之间进行选择
问题是,对于libstdc++
我需要使用标志-I/usr/include/c++/5
,对于libc++
我需要使用-I/usr/include/c++/v1
出于可移植性的原因,我不想在
CMakeListst.txt
中包含上述路径,也不想将其作为命令行参数。有没有办法做到这一点并让cmake
自动检测它?也许您已经知道,find\u package
boost或openssl也可以看到某些环境变量,例如boost\u ROOT
和openssl\u ROOT\u DIR
。所以你也需要这样的提示变量
像
我想你的CMakeLists.txt
是
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
message("-- Setting clang option")
include_directories(${Your_path})
...
elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
message("-- Setting gcc options")
include_directories(${Your_path})
...
else()
message("-- Unknown compiler, success is doubtful.")
message("CMAKE_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID}")
endif()
你是说当你运行CGUID时,你要选择编译器(Gcc/CLAN)和C++标准库(LIbSTDC++/LBC+++)。那么,您是否需要camke脚本,例如
if(clang)…else if(gcc)
?@CodeDreamer,我编辑了这个问题。谢谢。我希望路径能够自动检测并隐藏在一些CMake变量中。