使用Qt / qmake时如何将生成的文件(例如目标文件)放入单独的文件夹中?

时间:2010-08-09 13:20:57

标签: qt qmake object-files

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

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

分开。

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

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

2 个答案:

答案 0 :(得分:20)

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

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

以下位置提供变量列表:

答案 1 :(得分:0)

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

  

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

in * .pro write

CONFIG += object_parallel_to_source