2011-05-30 62 views

回答

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個目錄不存在,它們將自動創建。

該模式的優點是:

a。您可以將您的項目(myapp目錄)移動到另一個父目錄,由於bin &構建目錄的相關規範,它將繼續生成OK。

b。您可以在myprojects/source/

下添加更多子項目。你可以在不包含任何二進制或生成的文件的情況下備份(例如ZIP)所有myprojects/source /目錄

9

對此,您可以使用OBJECTS_DIRMOC_DIR變量。例如Qt本身在構建時會這樣做:

OBJECTS_DIR = .obj 
MOC_DIR  = .moc 

在這種情況下,我認爲.obj,.moc目錄與包含Makefile的目錄相關。