如何链接和编译库?(C++)



我正在使用IDE CodeBlocks,并希望在我的代码中使用一个名为Chilkat的第三方库。我可以让编译器读取头,但当我尝试使用库中的某个方法或对象时,代码不会编译。

代码:

#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'|

除此之外,图书馆网页上还有一些关于如何链接和编译图书馆的说明(https://www.chilkatsoft.com/downloads_mingw.asp#getStarted),但我不知道在哪里或如何使用这些参数:

链接时可能需要-Wl、--enable自动导入选项。此外,链接到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:对不起的英文错误

问题是链接错误,而不是"编译";错误你的代码编译得很好——链接器就是找不到一个依赖库。

问题不在于";chilkat";依赖关系是";WSAStartup"getsockopt"以及";setsockopt";。这些都在Microsoft Winsock库中。您需要在构建命令中包含-l ws2_32

相关内容

  • 没有找到相关文章

最新更新