我如何指示Qt Creator PRO文件在单独的文件夹中输出* .o文件和moc_ *文件?

时间:2011-05-30 22:09:34

标签: qt object file project temp

目前,QtCreator在应用程序的根文件夹中创建 .o和moc _ 文件。我如何指示项目文件将它们放在名为“obj”的子文件夹中?

2 个答案:

答案 0 :(得分:9)

您可以使用OBJECTS_DIRMOC_DIR变量。例如Qt本身在构建时做了类似的事情:

OBJECTS_DIR = .obj
MOC_DIR     = .moc

在这种情况下,我认为.obj,.moc目录是相对于包含Makefile的目录。

答案 1 :(得分:3)

要使主(源)文件夹保持二进制文件和生成文件的清除,可以将以下行放在“myapp.pro”文件中:

DESTDIR = ../../bin
UI_DIR = .

CONFIG(debug, debug|release) {
        TARGET = myappd
        OBJECTS_DIR = ../../build/myapp/debug
        MOC_DIR = ../../build/myapp/debug
}

CONFIG(release, debug|release) { 
        TARGET = myapp
        OBJECTS_DIR = ../../build/myapp/release
        MOC_DIR = ../../build/myapp/release
}

以上设置意味着以下目录结构:

myprojects/source/myapp/   => containing myapp.pro + all other project files hpp, cpp etc.
myprojects/bin/  => containing myapp.exe & myappd.exe application files
myprojects/build/myapp/release  => object files + moc files (release)
myprojects/build/myapp/debug   => object files + moc files (debug)

如果不存在,最后3个目录将自动创建。

此架构的优点是:

一个。您可以将项目(myapp目录)移动到另一个父目录,并且由于bin& amp;的相对规范,它将继续构建OK。构建目录

湾您可以在myprojects / source /

下添加更多子项目

℃。您可以备份(例如ZIP)所有myprojects / source /目录,而不包括任何二进制文件或生成的文件