我正在做一个大项目,有人可能会说很棒。
该项目正在使用cmake和netbeans在c++中开发。除了每次我对项目进行更新,添加或删除源文件时,netbeans运行cmake并将新项目添加到"项目"列表之外,一切都很好。这有点烦人,因为我经常这样做。
是否有一个聪明的方法来确保netbeans不创建新的项目,每次添加子目录?
好消息!
作为NetBeans 6.8, CMake处理优雅,就像任何其他configure
脚本:
- 创建一个新的"C/c++程序"
- 项目所在目录(
CMakeLists.txt
所在目录) - 在"选择配置模式"中选择"自动"。
和NetBeans将运行cmake
构建Makefile
时,必要的
(或者当你点击"重新配置项目"时)。
查看NetBeans论坛上的原始线程以获取更多信息
CMake-bases项目与NetBeans完美配合。
jmendes 答案:
- 新建
C/C++ Project with Existing Sources
- 设置项目路径(=主
CMakeLists.txt
目录) 在<<li> strong> - 点击
Next
- 选择
Run Configure Script in Subfolder
(默认文件夹为build
) - 如果你没有进一步的设置,点击
Next
直到你可以点击完成 点击
Select Configuration mode
设置 Custom
Finish
, Cmake将运行并构建您的项目这种方式比自动方式长一点,但实际上它只是设置两个刻度。
的优势,因此额外费用的原因:CMake现在会把所有的本地缓存文件在子文件夹 (build
),并保持它们分开在一个地方-不混合他们与其他项目的东西。
这保持了一个干净的项目结构,因为这些文件只是为你的项目创建的,并且是由每次配置运行创建的。
作为一个额外的:如果你必须手动删除CMake缓存-这种情况有时会发生-有一个单一的目录,所有的东西。
注:
自从NetBeans 8.0有语法着色所有CMake文件
我得到这个错误:"failed to start cmake: No such file or directory"
我必须NetBeans -> Preferences -> C/c++ (Build Tools) ->设置CMake命令到/opt/local/bin/CMake .
我在一个大型c++项目中使用Cmake, netbeans和SVN,没有问题。
我通常用选项"c++ with existing sources"来配置项目,然后选择由cmake生成的make文件,所以netbeans不知道我在使用哪个make工具。然后只选择包含需要处理的源代码的文件夹。
每次你更新源代码时,你必须更新你的Makefile (Netbeans项目也会更新源代码),运行cmake,所以你可以手动完成,或者只是在项目的构建命令中:"cmake ..",,(这很棘手,但效果很好)。希望对大家有帮助。