簡體   English   中英

如何鏈接和編譯庫? (C++)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM