==》windows 下方法:
1.方法一:vs工程中中直接新增
1.1在vs的屬性-》常規-》附加庫目錄,添上資料夾的路徑:例如:lib/x64;
1.2輸入的附加依賴項,新增上庫的名字,例如:dmapi.lib
1.3 對用到該庫的**進行,巨集包含,例如:
#ifdef log_xy
#endif
1.4 當你在工程編譯時,在c/c++-》預處理器-》預處理器定義,中未定義log_xy 時,就不會依賴庫dmapi.lib
2.方法二:在**中新增
#ifdef _win32
#ifdef log_xy
#pragma comment(lib,"..\prj_cpt_dm7\\lib\\x64\\dmapi.lib")
#else
//#pragma comment(lib,"..\prj_cpt_dm7\\lib\\x64\\dmapi.lib")
#endif
#endif
即可。==》linux 下,比較簡單:
在makefile 中庫和標頭檔案中,用巨集區分即可,例如:
log_xy_flag=0
...ifeg($log_xy_flag), 1)
logxylib=-l/opt/test/ -ldmapi
else
logxylib=
endif
...然後編譯加上上面的logxylib就可以了。
注:在新增新功能含有新的依賴庫時,為防止在僅需要舊的功能時,依然要依賴了新的依賴庫,就會用到以上方法。
如何編譯為靜態庫或動態庫
要將專案編譯為庫,使用cmake的add library命令 add library static shared module exclude from all source1 source2 sourcen 其中,引數static,shared,module指定生成庫是靜態庫 動態庫或module...
c c 靜態庫動態庫( )
預處理 gcc g e test.cpp 編譯主要動作 將預處理後的檔案轉換為彙編檔案,裡面為彙編指令 gcc g s test.cpp 彙編主要動作 將彙編檔案轉換為目標檔案,生成.o檔案,即目標檔案 gcc g c test.cpp 主要動作 將目標檔案和庫檔案集成為可執行檔案 鏈結主要動作 將...
編譯靜態庫編譯動態庫
編譯靜態庫 cr標誌告訴ar將object檔案封裝 archive 我們可以使用nm s 命令來檢視.a檔案的內容 ar cr libmyhello.a hello.o 或 cvr 編譯動態庫 gcc c fpic test1.c gcc c fpic test2.c fpic告訴gcc將源 編譯成...