目錄
VS2019 頭文件,庫使用教程
一丶簡介
使用VS系列的時候,下載了一個庫,以及很多庫文件 此時想要包含頭文件就很頭疼,以及包含庫.
一直使用替換頭文件,以及 #pragma comment(lib,"")的方式
其實Vs已經給我們提供了方法,只是不會用而已.這里當作記錄貼進行記錄一下.
二丶目錄解析
VC++ 目錄解析
先貼個圖:
這里針對常用的設置進行說明
目錄 | 對應環境變量 | 作用 | 簡單說明 |
---|---|---|---|
可執行文件目錄 | PATH | 搜索可執行文件的目錄 | 比如Cl.exe linke.exe等編譯器連接器的目錄 |
包含目錄 | INCLUDE源 | 源代碼中,使用#include<xxx.h>所包含的頭文件的目錄 也就是頭文件的目錄 | 主要就是提供一個目錄,這樣源碼中當使用#include<>就可以找到了.如果是你自己寫的.h那么你就使用#include"xx.h" |
引用目錄 | LIBPATH | 搜索通過#using指針在源代碼中引用的程序集或者模塊的文件路徑 | 如C++中常用的 using namespace std;那么 namespace的目錄就是這里提供的,自我理解. |
庫目錄 | LIB | 搜索庫的目錄 | 我們使用lib的時候,少的話寫為 #pragma comment(lib,"xxx\xxx\xxx.lib") 加上則可以去掉前邊路徑了,寫為#pragma comment(lib,"xxx.lib") |
然后上面所述的目錄,在VS2010之前是影響全局的,也就是只要使用這個VS創建的,那么就是影響全局.
C++ 連接器中的目錄介紹
C++->附加包含目錄 | INCLUDE | 跟上方所述VC++->包含目錄一樣也是印象InClude路徑的 |
---|---|---|
連接器->附加庫目錄 | LIBPATH | 指明LIB所在的目錄,指明之后則可以在附加依賴項中直接填寫你想使用的lib名稱 |
連接器附加依賴項 | lib | 指明你想使用的Lib的名稱即可. |
三丶偽代碼
配置之后那么你就可以在你程序中直接寫如下代碼了.
#include<aaa/abc.h> //我們的包含目錄或者附加包含目錄包含的是aaa目錄
#pragma comment(lib,"ccc.lib") //我們的連接器->附加庫目錄指明了CCC.目錄則可以直接包含CCC.LIB
int main()
{
// you code ......
return 0;
}
當然,為了程序兼容x64 x86 debug release我們都會用宏配置
#ifdef _WIN32
//Debug下的win32平台
#pragma comment(lib,"Dcccx86.lib")
#else
//debug下的x64平台
#pragma comment(lib,"DcccX64.lib")
#endif
#else
#ifdef _WIN32
//Release下的 win32平台
#else
//Release 下的x64平台
#endif // _WIN32
//Release平台
#endif // _DEBUG
四丶小問題解決
問題1.找不到 iob_func
因為版本太高問題,會出現如下問題
原因是版本太高等等,網上也有相關說明
解決方法
在全局加入
extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }
即可.
問題2. 無法解析 _sprintf
解決方法:
在連接器->輸入->附加依賴項添加 lib庫
添加的庫為:
legacy_stdio_definitions.lib;