1、作為普通級別的技術人員,添加過許多技術交流群(同事稱之為黃圖群),許多使用Windows平台的Visual Studio,交流群中如何引入第三方代碼資源提問源源不斷,因此提供本文作為建議
2、這問題很簡單,但對於技能就我個人而言,不會的時候覺得這狠是高深莫測難如登天,掌握之后也就覺得平平無奇了,下面將提供幾種簡單的方法供參考
1.1)拷貝法:將需要引用的東西拷貝到工程目錄。比如我需要引用一個AVTree的第三方實現:
第一步、將文件拷貝到VS的工程目錄下
第二步、在VS的解決方案資源管理器中對着需要引用AVTree的項目右鍵選擇 "添加"->"現有項"后選中拷貝到項目目錄中的AVTree文件后點擊"添加"就能完成引用
對於其它類型的文件如lib等方法類同,這種方法最為簡單,在移植性上只要引用的相對結構保持一致就行;但是對於多個工程復用不好維護,需要在更新引用文件后到處去拷貝。
2.1)將文件拷貝到VS安裝目錄下也是可以的,但是重新安裝VS需要重新拷貝並且會污染環境且不具移植性。
3.1)將需要使用的代碼實現文件、lib拷貝到Windows的系統環境變量目錄中,這種方法方便在多項目中共享但不具移植性並且會污染系統環境。
3)項目設置法:將代碼實現文件放在一個目錄中,通過設置項目屬性來完成引用
1)第一步、對着項目右鍵選擇"屬性"->"VC++目錄"選擇"包含目錄"與"庫目錄"兩個選項進行寫入
第二步、選擇"屬性"->"連接器"->"輸入"中選擇"附加依賴項"進行lib引用的指定,如你需要引用ref_lib1.lib與ref_lib2.lib
這種方法最大的優點在於對第三方引用資源的管理非常方便、更新修改都不需要單獨為引用的項目單獨做什么,麻煩的地方是要為每個引用的項目執行一次上面的操作。
4)軟鏈接法:將需要引用的代碼資源放在一個指定的目錄,然后將這個目錄寫進環境變量,所有第三方修改將在目錄中進行並且不需要對引用項目進行更新,但是如果環境或者鏈接破壞還是需要重建鏈接的。
第一步、創建軟連接(因為是代碼類的東西,所以自己是把這個目錄鏈接到了VS的目錄里面的,這個看個人喜好沒有太大影響)
mklink /J "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\OpenGLLink" "F:\learnopengl\include&lib\include"
mklink /J "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OpenGLLink" "F:\learnopengl\include&lib\lib32"
第二步、項目引用中使用include引用即可(這里需要注意 #include<> 與 #include"" 的作用)
這里使用#include<>是因為鏈接到環境變量的目錄中了,所以使用的是系統搜索機制
這里使用#include""是因為這個文件引用的頭文件所在目錄實際上並不在環境變量中,所以需要使用當前目錄搜索機制
這種方法方便第三方引用的管理,但是不具備移植性,非常適合自己寫東西用
(核心在於理解VS是怎么搜索文件的,怎么與環境變量勾搭上就沒啥問題了)