8

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

4

2 回答 2

9

您可以为此使用OBJECTS_DIRMOC_DIR变量。例如 Qt 本身在构建时会做这样的事情:

OBJECTS_DIR = .obj
MOC_DIR     = .moc

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

于 2011-05-30T22:29:39.353 回答
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 和构建目录的相关规范,它将继续构建 OK

湾。您可以在 myprojects/source/ 下添加更多子项目

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

于 2011-06-01T01:19:45.850 回答