【问题标题】:How to put generated files (e.g. object files) into a separate folder when using Qt/qmake?使用 Qt/qmake 时如何将生成的文件(例如目标文件)放入单独的文件夹中?
【发布时间】:2011-03-27 07:19:42
【问题描述】:

我有一个使用 qmake 的 Qt 项目。为了提高清晰度和可读性,我想保留

  • 源文件
  • 构建系统
  • 生成的文件(例如目标文件)

分开。

所以我的第一步是将源文件放入 src/ 子目录:

myproject/
    myproject.pro
    src/
        main.cpp
        MainWindow.ui
        ...

这样我将源文件与构建系统 (*.pro) 分开。但是,当我随后运行 qmake 后跟 make 时,生成的文件(目标文件等)被放置到主项目文件夹中:

myproject/
    myproject.pro
    Makefile
    main.o
    ui_MainWindow.h
    ...
    src/
        main.cpp
        MainWindow.ui
        ...

好吧,至少它们没有被放入src/文件夹,但是我如何指定它们被放入另一个子文件夹,例如build/

myproject/
    myproject.pro
    Makefile
    build/
        main.o
        ui_MainWindow.h
        ...
    src/
        main.cpp
        MainWindow.ui
        ...

(顺便说一句,我不在乎目标二进制文件 myproject 放在哪里,但我想它应该直接放在项目文件夹中,而不是放在 build/ 中。)

【问题讨论】:

    标签: qt qmake object-files


    【解决方案1】:

    您可以将以下行添加到您的 *.pro 文件中:

    DESTDIR=bin #Target file directory
    OBJECTS_DIR=generated_files #Intermediate object files directory
    MOC_DIR=generated_files #Intermediate moc files directory
    

    以下位置提供了变量列表:

    【讨论】:

    • 它对我有用。但是请注意,以下似乎不能作为使用构建目录根目录的一种方式:DESTDIR= #doesn't work DESTDIR=。 #不起作用
    【解决方案2】:

    https://wiki.qt.io/Undocumented_QMake#Config_features

    object_with_source — 将每个对象文件输出到与其源文件相同的目录中(在最新版本中由 object_parallel_to_source 代替)。
    object_parallel_to_source — 为目标文件重新创建源文件夹树(替换 object_with_source)。

    在 *.pro 中写入

    CONFIG += object_parallel_to_source
    

    【讨论】:

    • 没什么变化!
    猜你喜欢
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 2013-06-12
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多