目前的項目依賴於不少第三方庫,每次要再一個新的環境編譯/運行,都要花很長時間先編譯/安裝各類第三方庫,並且會出現各類問題,所以決定將全部第三方庫編譯好以後,放入工程的子目錄中,之後就不用重複編譯了。ui
整理後的目錄結構以下:.net
如此修改目錄結構以後,VS工程的一些設置須要進行修改,分別說明一下:3d
在工程屬性中 Configuration Properties > General > Output Directory 指定的是編譯出來的lib/dll/exe存放的路徑。orm
由於須要分平臺,分Debug/Release版,因此用到了一些宏:blog
相應修改一下就行,使用$(Platform)$(Configuration)這兩個宏,可使各個平臺/版本的配置都同樣,不須要分開配置。it
具體想知道有哪些可使用的宏,能夠再任何一個edit窗口,點擊「Macro>>」按鈕,展開全部的宏查看。io
最後這一條比較重要,由於如今全部第三方庫都不用安裝了,因此在運行程序的時候如何找到這些dll是一個問題。編譯
exe在運行的時候找dll的順序以下,理論上把dll加到任何一個環節均可以:form
咱們以前作了這麼多事情,就是爲了在新的環境中不須要作任何配置就能運行VS的工程,因此任何手動拷文件/修改環境變量的方式都不是最好的。變量
參考了這篇文章 http://my.oschina.net/u/243648/blog/62847,由於咱們的dll分散在不少個文件夾中,最後採起的方法是將這些目錄都加到環境變量PATH中,固然不是手動添加,而是加到VS的配置中。
在工程屬性中 Configuration Properties > Debugging > Environment 能夠添加在VS中運行程序須要添加的一些環境變量,僅對當前工程有效。咱們把全部第三方庫的路徑加進去就好了,注意必定要用相對路徑,不然換一臺機器仍是不能用。這裏有個潛在的危險,若是你的系統裏面已經裝了這個第三方庫,而且加到了上面6個環節中的任意一個,可能會引發一些錯誤。
另外若是出build的話,就須要另寫一個腳本,將須要用到的第三方dll和編譯出來的程序一塊兒打包,這樣就好了。