Questions tagged «cmake»

CMake是一个跨平台的开源构建系统生成器。它生成用于构建系统的文件,例如用于多个集成开发环境的本机makefile,ninja-build和项目文件。

5
CMake中的调试与发布
在GCC编译的项目中, 如何为每种目标类型(调试/发布)运行CMake? 如何使用CMake指定调试和发布C / C ++标志? 我如何表示将使用编译主可执行文件g++并使用一个嵌套库gcc?
435 c++  c  gcc  cmake 

21
寻找一个'cmake clean'命令来清除CMake输出
正如make clean删除makefile产生的所有文件一样,我也想对CMake进行同样的操作。我经常会发现自己手动遍历目录,删除了cmake_install.cmake和CMakeCache.txt等CMakeFiles文件以及文件夹。 是否有类似cmake clean自动删除所有这些文件的命令?理想情况下,这应该遵循当前目录CMakeLists.txt文件中定义的递归结构。
419 cmake 


14
如何在CMake中激活C ++ 11?
当我尝试运行CMake生成的makefile来编译程序时,出现以下错误: C ++ 98模式不支持基于范围的循环。 我尝试添加add_definitions(-std=c++0x)到CMakeLists.txt,但没有帮助。 我也尝试过这个: if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=gnu++0x) endif() 当我这样做时g++ --version,我得到: g ++(Ubuntu / Linaro 4.6.1-9ubuntu3)4.6.1 我也尝试过SET(CMAKE_CXX_FLAGS "-std=c++0x"),这也行不通。 我不明白如何使用CMake激活C ++ 11功能。
356 c++11  cmake 




9
使用CMake在GCC和Clang / LLVM之间切换
我有许多使用CMake构建的项目,我希望能够在使用GCC或Clang / LLVM进行编译之间轻松切换。我相信(如果我弄错了,请纠正我!)要使用Clang,我需要设置以下内容: SET (CMAKE_C_COMPILER "/usr/bin/clang") SET (CMAKE_C_FLAGS "-Wall -std=c99") SET (CMAKE_C_FLAGS_DEBUG "-g") SET (CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG") SET (CMAKE_C_FLAGS_RELEASE "-O4 -DNDEBUG") SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g") SET (CMAKE_CXX_COMPILER "/usr/bin/clang++") SET (CMAKE_CXX_FLAGS "-Wall") SET (CMAKE_CXX_FLAGS_DEBUG "-g") SET (CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG") SET (CMAKE_CXX_FLAGS_RELEASE "-O4 -DNDEBUG") SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g") SET (CMAKE_AR "/usr/bin/llvm-ar") SET …
269 cmake  llvm  clang 


5
如何使用CMake正确添加包含目录
大约一年前,我询问了CMake中的标头依赖性。 最近我意识到问题似乎是CMake认为这些头文件在项目外部。至少在生成Code :: Blocks项目时,头文件不会出现在项目中(源文件会出现)。因此,在我看来,CMake认为这些标头在项目外部,而不在依赖中跟踪它们。 在CMake教程中快速搜索仅指出了include_directories哪些似乎并没有达到我的期望... 向CMake发出信号的正确方法是什么,即特定目录包含要包含的标头,并且应由生成的Makefile跟踪这些标头?
242 c++  ubuntu  cmake 

3
CMake:打印出脚本中所有可访问的变量
我想知道是否有一种方法可以打印出CMake中的所有可访问变量。我对CMake变量不感兴趣-如--help-variables选项中一样。我说的是我定义的变量或包含的脚本定义的变量。 我目前包括: INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityCXX.cmake) 我希望可以只打印出这里的所有变量,而不必遍历所有文件并阅读可用的内容-我可能会发现一些我不知道的变量可能有用。帮助学习和发现将是一件好事。严格用于调试/开发。 这类似于在Lua中打印可访问当前范围的所有局部变量中的问题,但对于CMake! 有人这样做吗?
222 cmake 

5
如何在CMake文件中添加链接器或编译标志?
我正在使用arm-linux-androideabi-g++编译器。当我尝试编译一个简单的“ Hello,World!”时 程序可以编译良好。当我通过在该代码中添加简单的异常处理来对其进行测试时,它也可以工作(添加-fexceptions.. 后,我认为默认情况下它是禁用的)。 这是针对Android设备的,我只想使用CMake,而不是ndk-build。 例如 - first.cpp #include <iostream> using namespace std; int main() { try { } catch (...) { } return 0; } ./arm-linux-androideadi-g++ -o first-test first.cpp -fexceptions 没问题... 问题 ...我试图用CMake文件编译文件。 我想将其添加-fexceptions为标志。我尝试过 set (CMAKE_EXE_LINKER_FLAGS -fexceptions ) or set (CMAKE_EXE_LINKER_FLAGS "fexceptions" ) 和 set ( CMAKE_C_FLAGS "fexceptions") 它仍然显示错误。
220 c++  cmake 


9
如何将CMake输出转换为“ bin”目录?
我目前正在使用插件结构构建一个项目。我正在使用CMake编译项目。插件在单独的目录中编译。我的问题是CMake会在源的目录结构中编译并保存二进制文件和插件,动态库。如何使CMake将文件保存在./bin目录中?
187 c++  plugins  cmake 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.