1 遇到的問題
在開發項目過程中,經常會用到一些配置文件或者依賴庫,通常的做法是將相關文件複製到Qt可執行程序同級目錄下就可正常運行。Qt默認是在影子目錄下進行構建,以保持源碼的純淨,這樣的話依賴文件就和源碼是分離的。
可以預見,當源碼交付後,客戶是不能夠直接構建源碼的,因爲缺少相關依賴的文件,必須要配置纔行,這樣無論是對客戶還是開發者自身這都是讓人厭惡的,依賴問題有時候會讓人抓狂不止,特別是在linux下。
大的原則是:項目所有依賴的文件(配置文件和第三方依賴庫)要隨源碼一起進行管理,換了環境後源代碼纔有可能一鍵構建成功,而不需要做其他額外的配置。
2 如何解決?
處理方式很簡單,將構建目標指定在源碼目錄中,同時將配置文件和依賴的庫文件也加入到源碼目錄中即可。
3 操作步驟
- 在pro文件中爲構建目標指定目錄可以加入‘DESTDIR = $$PWD/build’,這樣目標可執行程序就會生成到源碼目錄下的build目錄下;
- 在源碼目錄中創建lib目錄,將依賴的庫文件加入到lib目錄中,右鍵項目或者qtcreator打開pro文件右鍵點擊添加庫,添加外部庫即可,這樣即解決了依賴問題,同時庫文件也加入到了源碼目錄,可以同源碼一起進行管理;
- 在build目錄下創建相關配置文件,這樣目標程序就可正常識別配置信息,同時配置文件也加入到了源碼目錄中,可以同源碼一起進行管理;
- 如果你是使用的git進行的代碼管理,在源碼目錄下添加
.gitignore
文件,內容如下:
*.pro.user
*.pro.user.*
build/*
!build/config.ini
後面兩行表示build目錄下除了config.ini配置文件其它文件都忽略,這樣目標可執行文件和其它中間文件就不會加入到版本庫中,這些文件每次構建後會重新自動生成,因此不需要進行版本管理。如此一來既解決了依賴問題,又沒破壞源碼的純淨,一舉兩得。