代码之家  ›  专栏  ›  技术社区  ›  vog

使用Qt/qmake时,如何将生成的文件(如对象文件)放入单独的文件夹?

  •  14
  • vog  · 技术社区  · 14 年前

    我有一个使用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 但我想应该直接放在项目文件夹中,而不是放在 建造/ .)

    2 回复  |  直到 14 年前
        1
  •  25
  •   Bowdzone coooold    10 年前

    您可以将以下行添加到 *.pro

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

    变量列表位于以下位置:

        2
  •  1
  •   O'Neil    7 年前

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

    object\u with \u source将每个对象文件输出到与其源文件相同的目录中(在最新版本中由object\u parallel\u to \u source替换)。
    对象\u并行\u到\u源重新创建对象文件的源文件夹树(将对象\u替换为\u源)。

    CONFIG += object_parallel_to_source