Qt Creator如何作为智能编辑器使用?
How to use Qt Creator as a smart editor?
我希望将 Qt Creator 4.7 用作智能编辑器,帮助 navigate/refactor 编写代码并尽早发现错误。我不想将其设置为构建项目——我只想编辑它。
这可能吗?如果是,怎么做?
更具体地说,我需要将以下信息传达给 Qt Creator 而不处理任何事情 build-related:
- 哪些是我的源文件,它们是什么语言(C、C++98、C++11 等)
- 其他包含文件的位置(如
-I
编译器选项)
- 任何特殊的
#define
预处理器
我尝试了什么:
我可以使用“文件”->“新建文件”或“项目”->“导入现有项目”来创建通用项目。这允许我在上面指定 2. 和 3.,但不能指定 1。具体来说,它 4.7.0 认为所有文件都是 C++98,并且不允许我使用更新的标准。代码模型配置不再接受 -std=c++11
选项。我的印象是泛型项目支持最近很少有人关注,不再推荐。
我试图建立一个 qmake 项目,但这似乎需要完整的 Qt 安装。我希望避免这种情况,因为我不使用 Qt。
我查看了如何使用 cmake-based 项目,但这似乎需要设置特定的构建目标。这真的有必要吗,或者有没有办法使用 cmake-based 项目只向 Qt Creator 传达所需的信息,并且 不 设置构建?假设编辑 header-only 库,但不包含任何 .cpp
文件。同样,cmake-based 项目似乎不是一个好的选择,因为 cmake 的真正目的是自动化构建,而我需要的只是将基本信息传达给我的 IDE.
动机:我经常在一个用于与 Mathematica 交互的库上工作。它有自己的 Mathematica-based 构建系统。一些必需的 .cpp
来源是 Mathematica 的 auto-generated。因此我不能完全切换到 cmake 之类的东西,这样做不会给我带来任何好处(但会花费大量的学习时间)。我只是希望能够将 Qt Creator 用作智能编辑器。
注意:过去,可以将 -std=c++
添加到代码模型配置并解决此问题。最新版本的 Creator 拒绝此选项。
Qbs 项目是通用项目的一种相当易于使用的替代方案,有助于解决此问题。
Qbs 相对于 qmake/cmake 的优势:
Qt Creator自带。不需要安装任何其他东西(比如所有的Qt)
它旨在与 Creator 配合使用(与 cmake 不同,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 帮助设置这一切!
我希望将 Qt Creator 4.7 用作智能编辑器,帮助 navigate/refactor 编写代码并尽早发现错误。我不想将其设置为构建项目——我只想编辑它。
这可能吗?如果是,怎么做?
更具体地说,我需要将以下信息传达给 Qt Creator 而不处理任何事情 build-related:
- 哪些是我的源文件,它们是什么语言(C、C++98、C++11 等)
- 其他包含文件的位置(如
-I
编译器选项) - 任何特殊的
#define
预处理器
我尝试了什么:
我可以使用“文件”->“新建文件”或“项目”->“导入现有项目”来创建通用项目。这允许我在上面指定 2. 和 3.,但不能指定 1。具体来说,它 4.7.0 认为所有文件都是 C++98,并且不允许我使用更新的标准。代码模型配置不再接受
-std=c++11
选项。我的印象是泛型项目支持最近很少有人关注,不再推荐。我试图建立一个 qmake 项目,但这似乎需要完整的 Qt 安装。我希望避免这种情况,因为我不使用 Qt。
我查看了如何使用 cmake-based 项目,但这似乎需要设置特定的构建目标。这真的有必要吗,或者有没有办法使用 cmake-based 项目只向 Qt Creator 传达所需的信息,并且 不 设置构建?假设编辑 header-only 库,但不包含任何
.cpp
文件。同样,cmake-based 项目似乎不是一个好的选择,因为 cmake 的真正目的是自动化构建,而我需要的只是将基本信息传达给我的 IDE.
动机:我经常在一个用于与 Mathematica 交互的库上工作。它有自己的 Mathematica-based 构建系统。一些必需的 .cpp
来源是 Mathematica 的 auto-generated。因此我不能完全切换到 cmake 之类的东西,这样做不会给我带来任何好处(但会花费大量的学习时间)。我只是希望能够将 Qt Creator 用作智能编辑器。
注意:过去,可以将 -std=c++
添加到代码模型配置并解决此问题。最新版本的 Creator 拒绝此选项。
Qbs 项目是通用项目的一种相当易于使用的替代方案,有助于解决此问题。
Qbs 相对于 qmake/cmake 的优势:
Qt Creator自带。不需要安装任何其他东西(比如所有的Qt)
它旨在与 Creator 配合使用(与 cmake 不同,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 帮助设置这一切!