Qt Creator如何作为智能编辑器使用?

How to use Qt Creator as a smart editor?

我希望将 Qt Creator 4.7 用作智能编辑器,帮助 navigate/refactor 编写代码并尽早发现错误。我不想将其设置为构建项目——我只想编辑它。

这可能吗?如果是,怎么做?


更具体地说,我需要将以下信息传达给 Qt Creator 而不处理任何事情 build-related:

  1. 哪些是我的源文件,它们是什么语言(C、C++98、C++11 等)
  2. 其他包含文件的位置(如 -I 编译器选项)
  3. 任何特殊的#define预处理器

我尝试了什么:


动机:我经常在一个用于与 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 项目添加明确的构建信息。指定哪些文件是项目的一部分就足够了。


入门:

  1. 运行 qbs-create-project在工程目录下创建准系统qbs文件

  2. 在文件顶部 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 帮助设置这一切!