19

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

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

分离。

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

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

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

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/.)

4

2 回答 2

27

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

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

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

于 2014-04-11T08:13:51.763 回答
1

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
于 2018-05-30T20:30:56.687 回答