【问题标题】:How to link and compile libraries? (C++)如何链接和编译库? (C++)
【发布时间】:2020-12-14 02:16:09
【问题描述】:

我正在使用 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-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: 如有英文错误,请见谅

【问题讨论】:

  • 问:您是否找到了相应的 CodeBlocks 文档 (wiki.codeblocks.org),并且您是否能够配置您的构建命令?问:您是否拥有所有需要的依赖库(crypt32、ws2_32、dnsapi ... 和 chilkat)?本教程也可能有所帮助:learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks
  • 文档有帮助吗?您是否成功配置了构建命令?你有所有必需的依赖库吗?您是否能够构建(编译、链接和运行)您的 .exe?请更新您的帖子。

标签: c++ compilation linker codeblocks


【解决方案1】:

问题是 link 错误,而不是“编译”错误。您的代码编译良好 - 链接器只是找不到依赖库之一。

问题本身不在于“chilkat”。依赖项是“WSAStartup”、“getsockopt”和“setsockopt”。这些位于 Microsoft Winsock 库中。您需要在构建命令中包含-l ws2_32

【讨论】:

  • 我所做的只是单击 IDE 的构建按钮。如何将此参数包含到构建中?
  • 问:如何在构建中包含这些参数? A:您需要学习如何使用 CodeBlocks!例如:Project-&gt;Build options-&gt; 设置您上面引用的选项:g++ -Wl,--enable-auto-import linkSample.cpp -o"linkSample.exe" -L. -lchilkat-9.5.0 -L/MinGW/lib -lcrypt32 -lws2_32 -ldnsapi。我假设您已经安装了 g++、“MinGW/lib”目录以及 crypt32、ws2_32 和 dnsapi 的库文件。如果还没有,请阅读 CodeBlocks 文档:wiki.codeblocks.org
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2021-10-22
相关资源
最近更新 更多