牡丹江站建站seo推廣
? ? ? ? 發(fā)現(xiàn)很多程序員存在這種做法:把項目依賴的第三方庫的lib和dll放在項目目錄下,或者復(fù)制到輸出目錄,因?yàn)槊糠N配置都有不同的輸出目錄,所以要復(fù)制多份(至少包括Debug和Release兩個輸出目錄),這些做法有很多弊端:
- 放在項目目錄下不能把項目自己的內(nèi)容和第三方內(nèi)容分開,這會導(dǎo)致一些混亂,比如不知道那些是自己的、哪些可以去官網(wǎng)更新
- 復(fù)制到輸出目錄導(dǎo)致做配置管理的時候不能直接忽略輸出目錄,從而上傳了垃圾文件到版本庫
- 復(fù)制多份違背配置管理的基本原則:一個東西只在一處
? ? ? ? 正確的做法是:
- 嚴(yán)格區(qū)分自己的文件和第三方文件
- 第三方文件獨(dú)立目錄存放
- 運(yùn)行配置獨(dú)立目錄存放
- 程序輸出獨(dú)立目錄存放
? ? ? ? 以上原則的主要目的是,能夠用最簡單的方式忽略不要入庫的文件,符合以上原則只需要忽略幾個目錄即可。
? ? ? ? 為了實(shí)現(xiàn)以上目的,要知道VS的幾個配置:
- 【C/C++】組的【附加包含目錄】,這個基本都知道,用來指定查詢頭文件的位置
- 【鏈接器組】的【常規(guī)】的【附加庫目錄】,用來指定鏈接時尋找lib和dll的位置(注意不是運(yùn)行時找dll的位置啊)
- 【鏈接器組】的【輸入】的【附加依賴項】,這就是要鏈接的庫,大家都知道
- 【生成事件】組的【生成后事件】,這是編譯成功后執(zhí)行的命令,直接寫dos命令即可,比如把依賴的復(fù)制到輸出目錄,這樣程序就可以運(yùn)行了
- 【調(diào)試】組的【工作路徑】,默認(rèn)值是項目路徑,修改為依賴的dll所在的位置即可讓程序跑起來,但是如果程序需要在工作路徑輸出文件啊、日志啊什么的,這就不一定合適了,違背了要入庫的文件和不要入庫的文件不能混在一起這個原則,所以要和生成后事件協(xié)作,讓程序在合適的工作目錄執(zhí)行
- 另外,多個項目共享的內(nèi)容也可以直接放在解決方案下,放頭文件、配置文件什么的是沒有問題的
? ? ? ? VS里面有一些常用的宏應(yīng)該了解一下,比如【$(ProjectDir)】代表項目目錄,很多配置項配置的時候旁邊有個按鈕【宏->】,點(diǎn)開就是所有可用的宏。
? ? ? ? 另外還有一個技巧:
? ? ? ? VS的項目配置編輯的時候可以選擇【所有配置】和【所有平臺】,從而一次性修改所有配置。
? ? ? ? 相關(guān)的設(shè)置的位置:
(這里是結(jié)束)