我希望将Qt Creator 4.7用作智能编辑器,以帮助导航/重构代码并及早发现错误。我不不想将其设置为构建项目-我只想对其进行编辑。
这可能吗?如果是,怎么办?
更具体地说,我需要将以下信息传达给Qt Creator ,而不要处理与构建相关的任何事情:
-I
编译器选项)#define
我尝试过的事情:
我可以使用File-> New File or Project-> Import Existing Project创建一个通用项目。这使我可以指定上面的2.和3.,但不能指定1。具体地说,它是4.7.0认为所有文件都是C ++ 98,并且不允许我使用较新的标准。代码模型配置不再接受-std=c++11
选项。我的印象是,通用项目支持最近很少受到关注,因此不再推荐。
我试图建立一个qmake项目,但这似乎需要完整的Qt安装。我希望避免这种情况,因为我不使用Qt。
我研究了如何使用基于cmake的项目,但这似乎需要设置特定的构建目标。这真的有必要吗,还是有办法使用基于cmake的项目仅将所需的信息传达给Qt Creator,而 not 却没有建立版本?假设编辑仅标头的库,但不包含任何.cpp
文件。再次,基于cmake的项目似乎不是一个好的选择,因为cmake的目的是自动化构建,而我所需要的只是将基本信息传达给我的IDE。
动机:我经常在一个用于与Mathematica进行交互的库上工作。它具有自己的基于Mathematica的构建系统。一些必需的.cpp
来源是Mathematica自动生成的。因此,我无法完全切换到cmake之类的方法,这样做不会给我带来任何好处(但是这将花费大量的学习时间)。我只是希望能够将Qt Creator用作智能编辑器。
注意:过去,可以将-std=c++
添加到代码模型配置中并解决此问题。最新版本的Creator拒绝此选项。
答案 0 :(得分:0)
Qbs项目是通用项目的相当容易使用的替代方案,有助于解决此问题。
Qb在qmake / cmake上的优势:
它与Qt Creator一起提供。不需要安装其他任何东西(例如Qt的所有东西)
它旨在与Creator配合使用(不同于cmake,它是构建系统,而不是IDE项目格式)
没有必要向Qbs项目添加显式的构建信息。指定哪些文件是项目的一部分就足够了。
入门:
在项目目录中运行qbs-create-project
以创建准系统qbs文件
在文件顶部type
下方添加以下内容,并根据需要进行调整:
Depends { name: "cpp" }
cpp.cxxLanguageVersion: "c++11"
cpp.includePaths: base.concat([
"/your/include/path1",
"/your/include/path2",
])
cpp.defines: base.concat([
"NDEBUG",
"SOME_SYMBOL",
"SYMBOL_WITH_VALUE=123",
])
您可能想使用
来代替qbs-creator-project
添加的文件
files: [ "**/*.cpp" ]
添加所有文件,类似于通用项目的外观。
感谢Nikolai Kosjar帮助完成了所有这些工作!