最近由於接觸機器學習,全部涉獵到C++方面的開發。在c++中有幾個概念很迷糊。c++
VS項目中的包含目錄、庫目錄、附加包含目錄、附加庫目錄、附加依賴項均在"項目->屬性->配置屬性"下進行配置,具體說明以下:機器學習
VC++目錄:函數
包含目錄:尋找#include<xxxx.h>中的xxxx.h的搜索目錄學習
庫目錄:尋找.lib文件的搜索目錄spa
C/C++:.net
常規->附加包含目錄:尋找#include<xxxx.h>中的xxxx.h的搜索目錄(每一項對應一個文件夾XXXX,文件夾中包含了編譯時所需的頭文件,使用時直接#include<XXXX>便可)blog
連接器:開發
常規->附加庫目錄:尋找.lib文件的搜索目錄字符串
輸入->附加依賴項:lib庫(C++的庫會把函數、類的聲明放在*.h中,實現放在*.cpp或*.cc中。編譯以後,*.cpp,*.cc,*.c會被打包成一個.lib文件,這樣能夠保護源代碼)get
常見問題:
1.包含目錄和附加包含目錄(庫目錄和附加庫目錄)的區別:
包含目錄:修改了系統的include宏的值,是全局的;
附加包含目錄:用於當前項目,對其餘項目沒有影響。
(庫目錄和附加庫目錄的區別同上)
2.可知包含目錄和附加包含目錄(庫目錄和附加庫目錄)的區別主要在於全局仍是當前,那麼當須要對某工程添加這些目錄時,一般狀況下,都是在附加包含目錄和附加庫目錄中添加的。
3. 要使用一個庫,除了要include其頭文件之外(附加包含目錄),還要在連接過程當中把lib加進去(附加庫目錄、附加依賴項)。
4.添加方法:
附加包含目錄---添加工程的頭文件目錄:
項目->屬性->配置屬性->C/C++->常規->附加包含目錄:加上頭文件的存放目錄;
附加庫目錄---添加文件引用的lib靜態庫路徑:
項目->屬性->配置屬性->連接器->常規->附加庫目錄:加上lib文件的存放目錄;
附加依賴項---添加工程引用的lib文件名:
項目->屬性->配置屬性->連接器->輸入->附加依賴項:加上lib文件名。
5.當須要向項目中添加.dll動態連接庫時,直接將須要添加的.dll文件拖拽到項目生成的.exe所在的文件夾下便可(項目->屬性->配置屬性->常規->輸出目錄,能夠看到.exe生成在哪一個目錄下)。
6.在添加上述幾個目錄的路徑的時候,能夠看到$(xxxx),這就是宏了,能夠點開右下角的宏查看這些分別表明什麼字符串。