问题描述
|
当前,QtCreator在应用程序的根文件夹中创建.o和moc_文件。我如何指示项目文件将它们放在名为“ obj”的子文件夹中?
解决方法
为了使主(源)文件夹中没有二进制文件和生成的文件,您可以将以下行放在\“ 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&build目录的相对规范,它将继续构建OK。
b。您可以在myprojects / source /下添加更多子项目。
C。您可以备份(例如ZIP)所有myprojects / source /目录,而无需包含任何二进制文件或生成的文件
, 您可以为此使用OBJECTS_DIR
和MOC_DIR
变量。例如Qt本身在构建时会执行以下操作:
OBJECTS_DIR = .obj
MOC_DIR = .moc
在这种情况下,我认为.obj,.moc目录是相对于包含Makefile的目录的。