debugging与释放在CMAKE

在GCC编译的项目中,

  • 如何为每个目标types运行cmake (debugging/发布)?
  • 如何使用cmake指定debugging和释放C / C ++标志?
  • 如何expression主要的可执行文件将被编译为g++和一个gcc嵌套库?

通常最好做一个“源头”构build。 在您的项目的根目录中创build您的CMakeLists.txt 。 然后从你的项目的根源:

 mkdir Release cd Release cmake -DCMAKE_BUILD_TYPE=Release .. make 

而对于debugging(再次从您的项目的根):

 mkdir Debug cd Debug cmake -DCMAKE_BUILD_TYPE=Debug .. make 

Debug将添加适合您的编译器的debugging标志。 有关更多详细信息,请参阅此FAQ


您可以通过CMAKE_C_FLAGS_DEBUGCMAKE_C_FLAGS_RELEASEvariables修改/添加CMakeLists.txt的标志,例如:

 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall") 

有关更多详细信息,请参阅CMAKE_BUILD_TYPE下的此链接 。


至于你的第三个问题,我不确定你在问什么。 CMake应该自动检测并使用适合你的不同源文件的编译器。

对于debugging/释放标志,请参阅CMAKE_BUILD_TYPEvariables(将其作为cmake -DCMAKE_BUILD_TYPE=value传递)。 它需要ReleaseDebug等值

http://cmake.org/Wiki/CMake_Useful_Variables#Compilers_and_Tools

cmake使用扩展名来select编译器,所以只需命名你的文件.c。

你可以用各种设置覆盖它:

例如:

 set_source_files_properties(yourfile.c LANGUAGE CXX) 

用g ++编译.c文件。 上面的链接还显示了如何为C / C ++select特定的编译器。