CMake作为初学者获得任何有用的信息是非常困难的。 到目前为止,我已经看到了一些关于如何设置一些非常基本的项目的教程。 但是,这些都不能解释任何东西背后的原因,总是留下很多空缺来填补。 在CMakeLists上调用CMake 是什么意思 ? 它应该被称为每个构build树或什么? 如果每个版本都使用来自同一个源的相同CMakeLists,那么我如何使用不同的设置? 为什么每个子目录都需要自己的CMakeLists? 在项目根目录以外的CMakeLists上使用CMake是否有意义? 如果是这样,在什么情况下? 指定如何在CMakeLists的子目录中创build可执行文件或库与在所有源的CMakeLists中执行该操作有什么区别? 我可以做一个项目的Eclipse和Visual Studio的只是改变-G选项时调用CMake? 这甚至是如何使用? 到目前为止,我所见过的教程,文档页面或问题/答案都没有提供有助于理解如何使用CMake的有用信息。 这些例子只是不彻底。 无论我读什么教程,我都觉得我错过了一些重要的东西。 像我这样的CMake新手问了很多问题,这些问题并没有明确地提出,但是这样做显而易见,作为新手,他们不知道如何处理CMake或者如何处理CMake,所以即使有一个问题这样看起来可能太宽泛了,我认为值得留下来回答。
我在源文件旁边的“config”目录中有一些configuration文件(xml,ini,…)。 每次我创build项目时,如何将configuration目录中的所有文件复制到构build目录(可执行文件旁边)?
我在Ubuntu 14.04上安装CLion。 我用CMakeLists.txt的帮助来构build我的第一个项目: 源文件: #include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } 的CMakeLists.txt: cmake_minimum_required(VERSION 2.8.4) project(sh) set(SOURCE_FILES main.cpp) add_executable(sh ${SOURCE_FILES}) 我的源文件位于/ home / user / Desktop / sh 。 但生成后,我没有看到这个文件夹中的任何可执行文件。 它在哪里?
我目前正试图让CMake在我的Windows 7(64位)系统上运行。 我想编译TagLib,以便以后使用我正在使用的Qt应用程序。 我想用MinGW(而不是像这个其他问题的 Visual C ++)来编译它。 我下载安装程序(cmake-2.8.3-win32-x86.exe)并安装它(我也select将CMake添加到我的path中)。 然后我去为CMakeLists.txt文件为目录,并运行cmake . 。 然后它给了我这个巨大的错误。 C:\Users\Joel\Downloads\taglib-1.6.3>cmake . CMake Warning at CMakeLists.txt:1 (project): To use the NMake generator, cmake must be run from a shell that can use the compiler cl from the command line. This environment does not contain INCLUDE, LIB, or LIBPATH, and these must be set […]
我在下一次使用CMake时提醒自己。 它从来没有坚持,谷歌的结果不是很好。 在CMake中设置和使用variables的语法是什么?
我正在使用CMake来构build我的项目。 我添加了一个使用boostunit testing框架的unit testing二进制文件。 这一个二进制包含了所有的unit testing。 我已经添加了由CTest运行的二进制文件: ADD_EXECUTABLE( tftest test-main.cpp ) ENABLE_TESTING() ADD_TEST( UnitTests tftest) 但Visual Studio中的构build输出仅显示运行ctest的结果: Start 1: UnitTests 1/1 Test #1: UnitTests …………….***Failed 0.05 sec 0% tests passed, 1 tests failed out of 1 这不是很有帮助,因为我看不到哪个testing失败。 如果我从命令行手动运行ctest –verbose我从增强unit testing的输出,告诉什么实际上失败: 1: Test command: tftest.exe 1: Test timeout computed to be: 9.99988e+006 1: Running 4 test […]
我通常在我的项目中有一个策略,不要在超过80行的文本文件中创build行,所以在各种编辑器(你知道这个交易)中它们都很容易编辑。 但是用CMake,我得到的问题是,我不知道如何将一个简单的string分成多行来避免一个庞大的行。 考虑这个基本的代码: set(MYPROJ_VERSION_MAJOR "1") set(MYPROJ_VERSION_MINOR "0") set(MYPROJ_VERSION_PATCH "0") set(MYPROJ_VERSION_EXTRA "rc1") set(MYPROJ_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_EXTRA}") 它已经放弃了80线的限制。 那么如何将CMake中的一行划分为多行而不需要详细(多list(APPEND …)等)呢?
我正在尝试使用CMake来编译opencv。 我正在阅读教程,但不明白什么是CMakeLists文件,它如何连接到CMake的GUI? 也不明白什么是makefile,他们是一样的CMakeLists? 我到底用visual-studio打开了哪个文件?
我正在尝试使用CMake来configuration一个项目,但即使它们在指定的文件夹中,也无法findBoost库。 我指定了Boost_INCLUDE_DIR,Boost_LIBRARYDIR和BOOST_ROOT,但是我仍然得到一个错误,说CMake无法findBoost。 可能是这种错误的原因是什么?
自CLion一个月前发布以来,关于它的文件并不多。 所以我对如何使用CLion创buildac项目感到困惑,当我想创build一个新项目时,我只需要询问项目名称,并创build一个引用main.cpp文件的默认main.cpp和CMakeLists.txt文件。 那么我可以将文件main.cpp重命名为 – > main.c并手动编辑CMakeLists.txt,但在.txt文件中也有一些东西,所以我需要一些帮助。 默认CMakeLists.txt文件; cmake_minimum_required(VERSION 2.8.4) project(example) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(SOURCE_FILES main.cpp) add_executable(dbsg ${SOURCE_FILES}) 注意:问题可能有一个更简单的解决scheme,如创build一个C项目,而不是C ++项目,但我看不到,所以我不得不让人阅读这个问题可能有一个更简单的解决scheme,然后手动编辑,谢谢。