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

时间:2018-09-11 14:29:33

标签: cmake qt-creator

我希望将Qt Creator 4.7用作智能编辑器,以帮助导航/重构代码并及早发现错误。我不想将其设置为构建项目-我只想对其进行编辑

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


更具体地说,我需要将以下信息传达给Qt Creator ,而不要处理与构建相关的任何事情:

  1. 我的源文件是什么,它们的语言是什么(C,C ++ 98,C ++ 11等)
  2. 其他包含文件的位置(例如-I编译器选项)
  3. 预处理器假定的任何特殊#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拒绝此选项。

1 个答案:

答案 0 :(得分:0)

Qbs项目是通用项目的相当容易使用的替代方案,有助于解决此问题。

Qb在qmake / cmake上的优势:

  • 它与Qt Creator一起提供。不需要安装其他任何东西(例如Qt的所有东西)

  • 它旨在与Creator配合使用(不同于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帮助完成了所有这些工作!