[英]Android Studio opencv C++ compile link libraries error at runtime
[英]How to link and compile libraries? (C++)
我正在使用 IDE 代碼塊,並希望在我的代碼中使用名為 Chilkat 的第三方庫。 我可以讓編譯器讀取 header,但是當我嘗試使用庫中的某種方法或 object 時,代碼無法編譯。
編碼:
#include <iostream>
#include <CkSpider.h>
using namespace std;
int main(){
CkSpider m;
m.Initialize("www.chilkatsoft.com");
cout<<"Works"<<endl;
return 0;
}
所有錯誤都是這樣的:
..\libchilkat-9.5.0.a(ChilkatSocket.o):ChilkatSocket.cpp|| undefined reference to `__imp_WSAStartup'|
..\libchilkat-9.5.0.a(ChilkatSocket.o):ChilkatSocket.cpp|| undefined reference to `__imp_getsockopt'|
..\libchilkat-9.5.0.a(ChilkatSocket.o):ChilkatSocket.cpp|| undefined reference to `__imp_setsockopt'|
除此之外,還有一些關於如何在庫 web 頁面( https://www.chilkatsoft.com/downloads_mingw.asp#getStarted )上鏈接和編譯庫的說明,但我不知道在哪里或如何使用這些參數:
鏈接時可能需要 -Wl,--enable-auto-import 選項。 此外,鏈接 libcrypt32.a、libws2_32.a 和 libdnsapi.a,如下所示:
g++ -Wl,--enable-auto-import linkSample.cpp -o"linkSample.exe" -L. -lchilkat-9.5.0
-L/MinGW/lib -lcrypt32 -lws2_32 -ldnsapi
我如何以及在何處使用這些參數,以便我可以在 CodeBlocks 上鏈接和編譯這個庫?
PS:如有英文錯誤,請見諒
問題是鏈接錯誤,而不是“編譯”錯誤。 您的代碼編譯良好 - linker 只是找不到依賴庫之一。
問題本身不在於“chilkat”。 依賴項是“WSAStartup”、“getsockopt”和“setsockopt”。 這些在 Microsoft Winsock庫中。 您需要在構建命令中包含-l ws2_32
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.