2012-02-23 160 views
17

我想用Qt creatorCmake在一起(请不要问我关于我的动机,接受这个作为一个给定的。)使用cmake与Qt Creator的

我成功地建立了Qt Creator中使用的cmake“ Cmake“:请参阅thisthisthis关于我如何做到这一点的文档。

我成功创建了hello world项目,但我无法在项目中创建文件, 只将现有文件添加到项目树中,然后将其添加到cmake列表中。 Qt创建者“添加新...”的标准操作不起作用,我无法找到原因。

有没有人同时使用Qt Creator和“Cmake”?这个组合实际上可能吗?

注意:我正在使用Qt creator v2.4.1。

回答

12

你可以在你的CMakeLists.txt添加使用全局正则表达式的文件,如:

file(GLOB SRC . *.cpp) 
add_executable (your_exe_name ${SRC}) 

的CMake会选择新的cpp文件下一次运行它,并QtCreator将展示他们在项目浏览器。

更新

这种解决方案可能是有用的,但在评论中所指出 - 这是不是一个好的做法。每次有人添加新的源文件并提交更改时,都需要重新运行cmake来构建所有源。通常我只是touch其中一个CMakeLists.txt文件,如果我的版本在我将最近从存储库中进行的更改汇集后中断了。之后,make会自动运行cmake,我不需要手动运行它。尽管如此,我认为在CMakeLists.txt明确的来源清单是一件好事,他们称CMake 列表是有原因的。

+3

请记住尽管如此,CMake使用Globing来收集源文件被认为是不好的做法。 – 2012-10-16 10:41:13

+3

我正在使用文件(GLOB_RECURSE SRC * .cpp) – themean 2013-01-14 13:31:18

+1

CMake从makefile运行本身非常聪明。我从来不需要手动运行CMake,而且我经常使用球体...... – rubenvb 2013-08-26 07:50:56

9

当您使用“新建文件或项目...”对话框在QtCreator中添加新文件时,它只会在磁盘上创建文件,并不会自动将文件添加到CMakeLists.txt中。您需要通过编辑CMakeLists.txt文件手动完成此操作。

下一次构建项目时,CMake将重新运行,QtCreator将选取新文件并将其显示在项目浏览器中。

+0

可能是我没有足够的清除 我搜索的方式来创建目录中的文件。右键上的文件夹 - >添加项目等。这对我来说不适用于我当我使用cmake – themean 2012-02-23 16:05:57

+0

@themean - 我把你的问题是:是否有可能添加文件到QtCreator基于CMake的项目?如果是这样,你怎么做?如果我误解了这一点,请编辑您的问题以澄清您要提出的问题。 – alanxz 2012-02-23 16:14:03

+0

谢谢。它已完成 – themean 2012-02-23 16:23:07

2

我在这里测试并发生相同的行为,因为你要求的那些选项是真正禁用的。

使用文件 - >“新建文件或项目......”或者Ctrl + N以添加新文件,之后添加到的CMakeLists.txt

5

我解决这个问题,我在标准的方式添加新的文件( CTRL + N),然后在CMakeLists中添加需要的文件。之后,右键单击项目树视图中的项目,然后选择选项Run CMake。在此之后,文件显示在项目列表树中。只有建立是不够的。