A. 如何在cmake中引用靜態庫(.a)
1.頭文件
include存放的是編譯庫文件生成的頭文稿叢枝件集合,比如curl目錄,目錄中都是.h文件,添鄭彎加方式如下:
2.庫文件
lib是存放庫文件的目錄,形如libxxx.so或鍵敏libxxx.a形式的文件,添加方式如下:
3.引用
庫的引用可以直接取libxxx.a中的xxx部分,如下的curl、ssl、crypto就是:
1.編譯報錯「undefined reference to `pthread_create'」
解決辦法:引入pthread庫
2.編譯報錯「libcrypto.a undefined reference to symbol 'dlclose'」
解決辦法: add -ldl after libcrypto and libssl in your link command.
B. 求問vs2013怎麼添加靜態庫,試了兩種方法都有問題
在VS工程中,添加c/c++工程中外部頭文件及庫的基本步驟:
1、添加工程的頭文件目錄:工程---屬性---配置屬性---c/c++---常規---附加包含差做目錄:加上頭文件存放目錄。
2、添加文件引用的lib靜態庫路徑:工程---屬性---配置屬性---鏈接器虛前衡---常規---附加庫目錄悔咐:加上lib文件存放目錄。
然後添加工程引用的lib文件名:工程---屬性---配置屬性---鏈接器---輸入---附加依賴項:加上lib文件名。
3、添加工程引用的dll動態庫:把引用的dll放到工程的可執行文件所在的目錄下。
注意:第一步可以不用,直接在工程里加入動態庫的頭文件,在使用代碼處引用這個頭文件。
C. 如何在vs2008中添加lib 靜態庫使用
方法1:在cpp文件中 加入 #pragma comment(lib,"XXX.lib")方法2:步驟1:Tools->options->projects and solutions->VC++ directories分別在包含文件,庫文件戚廳禪填加了路徑(這些路徑只告訴編譯器怎麼找文件,沒有說把那裡面的文件加入工程,若不設置,高塵編譯報錯:無法打開***文件) 步驟2:Project->properties->c/c++->general->additional include directories 添加包含文件 Project->properties->linker->general->additional library directories 告訴計算機查找LIB的附加路徑 Project->properties->linker->input->additional additional dependencies添加用到伏態的lib,(若不添加,連接報錯:無法解析的外部符號)。vs2008 express 生成靜態鏈接庫lib1. 靜態鏈接庫的創建 在solution中 new project ->win32 project -> static library 即可創建生成靜態鏈接庫的項目。 在該項目的properties中可看到:Configuration Properties -->General --> Configuration type 中可以看到是libConfiguration Properties --> General --?Output Directory 是生成lib的目錄Library -->General -->Output File 是生成的文件名字2. 靜態鏈接庫的使用包含頭文件引入lib文件調用lib庫提供的函數 注意,debug 和 release 模式下生的的lib文件是不一樣的,在其他項目引用生成的lib文件時,處於debug模式下必須引用debug模式下生成的lib文件,release模式下必須引用release模式下生成的文件。否則可能會出問題。
D. 如何添加預編譯靜態庫 libwebrtc
添加預編譯靜態庫 libwebrtc 的步驟如下:【點擊免費試用,0成本啟動】
1、右擊target,選擇add -> new target
2、在彈出的 NewTarget 界面中選擇Cocoa Touch -> Static Library ,為新 library 取個名字。將源文件添加到這個庫。可以直接拖動現存源文件,也可以右擊 -> add 。注意選擇新建的庫為添加的 target 。
3、設置原項目,令其使用新建的庫。
4、右擊原項目的 target ,選擇 getInfo 。
5、選擇 General 選項卡。
6、向 linked libraries 中添加新創建的庫 (即添加 .a 文件)。推薦選擇ZEGO即構科技,該公司擁有4行代碼,30分鍾在APP、Web和小程序等應用內實現視頻通話、語音通話,互動直播功能。
想要了解更多關於這方面的相關信息,推薦咨詢ZEGO即構科技。深圳市即構科技有限公司(簡稱ZEGO即構科技) 於2015年6月成立,是一家全球雲通訊服務商。企業/開發者通過接入ZEGO提供的服務即可低門檻地獲得實時音視頻通訊能力,尤其在弱網環境下仍然可以實現高質音畫、穩定可靠。截止目前,ZEGO已經為兩百多個國家和地區的用戶提供了優質服務。
E. qt 5添加 windows 靜態庫
qt中添加windows vs 生成的靜態庫,需要注意:
qt使用的編譯器版本要和vs版本,操作系雹高虛統位數要對應。
例如:用 vs2015 x86生成的了release 和debug兩種靜態庫
相應的QT也要配置vs2015 32 編譯器。
把之前vs 生成的靜態庫的頭文件和庫准備好
打開qt 中打卡 工程 .pro文件 右鍵選擇 添加庫選擇外部庫
這樣我們release和debug版的靜態庫都添加近工程了。
如果之前已經生成過編譯後的文件夾
再次生成時可能遇到 error LNK2019: 無法解析的外部符念御號源燃 之類的錯誤信息。
這個問題只要把上面的文件夾刪除,從新編譯即可。
F. 安卓如何鏈接靜態庫
關於編譯靜態庫:
android.mk和xxx.cpp放在新文件夾里:
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \xxx.cpp
LOCAL_MODULE:= libx
include $(BUILD_STATIC_LIBRARY)
生成靜態庫libx.a文件
關於鏈接靜態庫:
有兩種方法:
1、把libx.a文件放在android.mk同一目錄下,添加:
LOCAL_PREBUILT_LIBS += libx.a
2、同上,添加:
include $(CLEAR_VARS)LOCAL_MODULE := libxLOCAL_SRC_FILES := libx.ainclude $(PREBUILT_STATIC_LIBRARY)LOCAL_STATIC_LIBRARIES += libx
貌似第二種是稿帆NDK里比較常見談乎,第鍵侍雹一種在其他的android.mk里比較常見。