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

vog*_*vog 15 qt qmake object-files

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

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

分离.

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

myproject/
    myproject.pro
    src/
        main.cpp
        MainWindow.ui
        ...
Run Code Online (Sandbox Code Playgroud)

这样我就将源文件与构建系统(*.pro)分开了.然而,当我然后运行qmake其次make,将所生成的文件(目标文件等)被放置到主项目文件夹中:

myproject/
    myproject.pro
    Makefile
    main.o
    ui_MainWindow.h
    ...
    src/
        main.cpp
        MainWindow.ui
        ...
Run Code Online (Sandbox Code Playgroud)

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

myproject/
    myproject.pro
    Makefile
    build/
        main.o
        ui_MainWindow.h
        ...
    src/
        main.cpp
        MainWindow.ui
        ...
Run Code Online (Sandbox Code Playgroud)

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

Bow*_*one 21

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

DESTDIR=bin #Target file directory
OBJECTS_DIR=generated_files #Intermediate object files directory
MOC_DIR=generated_files #Intermediate moc files directory
Run Code Online (Sandbox Code Playgroud)

以下位置提供变量列表: