【问题标题】:Qt Creator DEFAULT project template and compiling flagsQt Creator DEFAULT 项目模板和编译标志
【发布时间】:2017-03-10 15:29:51
【问题描述】:

我已经使用 Qt 一段时间了,但我找不到两个选项:

  1. 默认项目模板。换句话说,每当我创建一个新项目时,它都会有:

    #include <iostream>
    #include <cstdlib>
    #include <iomanip>
    
    /* author: $author
     * $date
     */
    
    using namespace std;
    
    int main(int argc, char *argv[]) {
    
    }
    
  2. 我希望默认打开编译器标志-Wall -pedantic -std=c++11。我知道我可以通过在项目 .pro 文件中添加行来添加标志,但是对于每个项目都必须这样做似乎很麻烦。

我试过谷歌搜索,但只能找到涉及为每个项目单独做事的方法。

【问题讨论】:

    标签: c++ qt ide


    【解决方案1】:

    有两种方法。

    Qt Creator 项目设置

    对于您已经创建但不打算更改的项目,您可以在 Qt Creator 的项目构建配置中添加 "CONFIG+=c++11 warn_on" 作为 qmake 参数:

    然后,您可以将这些设置传播到 shared project settings,这将成为您尚未配置其构建的所有项目的默认设置。

    如果您有lots 不想修改的项目,这将非常有用。

    模板

    您可以从具有所需设置的模板创建新项目。模板包括构成项目的原型文件,例如.pro 文件、源/头文件、自述文件、许可证、默认图标等 - 任何你想要的,真的。

    Qt Creator 模板由简单的文本文件构成,这些文件由 Qt Creator 预处理以替换向导中的条目。可以用两种方式描述这些向导:一种较旧的基于 XML 的格式,另一种是较新的基于 JSON 的格式。详情请见the documentation

    我有一个简单的基于 XML 的向导示例,可用于快速创建 StackOverflow 答案:

    https://github.com/KubaO/stackoverflown/tree/master/qtcreator-templates

    我希望默认启用编译器标志 -Wall -pedantic -std=c++11。

    不要使用特定于平台的选项,而是使用跨平台配置选项。该模板应在其.pro 文件中包含以下内容:

    CONFIG += c++11 warn_on
    

    这些是documented

    【讨论】:

    • 除非我误解你,.pro 文件是特定于项目的,所以如果我想要这些标志,我需要为每个项目添加它们吗?
    • 没关系,您的意思是向导文件夹中的 .pro 文件,对吗?
    • 是的。另一种选择是编辑顶级.user 文件。我已将其添加到答案中。
    【解决方案2】:

    很抱歉,qtcreator 目前似乎无法管理模板。您可以做的是获取 qtcreator 的源代码,进行所需的更改,然后编译安装它。我看不到任何其他方法可以做到这一点。 比如要在main.cpp中添加using命名空间,到qt-creator/share/qtcreator/templates/qt4project/main.cpp中添加即可。

    【讨论】:

    • 也许你的意思是Qt Creator本身没有模板的项目类型,但它肯定已经为使用模板提供了很长时间的支持。
    • 我的意思是,我没有看到任何地方我们可以更改 Qt Creator 模板而不更改代码本身。
    • 这些模板作为文本文件部署在 Qt Creator 的安装文件夹中。在那里修改它们很简单,您可以添加自己的。你根本不需要接触 Qt Creator 的源代码。请参阅here 获取一个简单的示例和有关如何安装它的说明 - 无需构建任何东西,您只需将模板复制到 Qt Creator 查找它们的位置。
    • 好样的!我不知道。谢谢!
    猜你喜欢
    • 2023-02-02
    • 2014-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多