Libcurl c ++“未定义引用”(Windows / MinGW / g ++)[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Libcurl c ++“未定义引用”(Windows / MinGW / g ++)[重复]相关的知识,希望对你有一定的参考价值。

我试图编译这段代码,

 #include <curl/curl.h>


int main(void)
{
  CURL *curl;

  curl = curl_easy_init();

}

使用此命令:

g++ -I../curl/include/curl -L../curl/lib  -DCURL_STATICLIB src/main.cpp -o main.exe -llibcurl_a

我收到很多错误

../curl/lib/libcurl_a.lib(../builds/libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib/easy.obj):(.text$mn+0x4): undefined reference to `__security_cookie'
../curl/lib/libcurl_a.lib(../builds/libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib/easy.obj):(.text$mn+0x13e): undefined reference to `@__security_check_cookie@4'
../curl/lib/libcurl_a.lib(../builds/libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib/easy.obj):(.text$mn+0x2d): undefined reference to `_imp__WSACleanup@0'
../curl/lib/libcurl_a.lib(../builds/libcurl-vc12-x86-release-static-ipv6-sspi-winssl-obj-lib/easy.obj):(.text$mn+0x7): undefined reference to `__security_cookie'

我认为这是链接器的问题,但我不知道如何解决它。如果您需要更多信息,请告诉我。

如果有人可以帮助我会很棒。

答案

您将需要链接其中一个缓冲区overflow.lib库或重建libcurl而不使用qazxsw poi编译器开关。

正在发生的是lib curl已经使用缓冲区溢出保护开关构建/GS Visual C ++编译器为lib curl添加了增强的保护。编译后的代码无法链接,因为链接器无法解析对/GS的引用,因此您需要确保链接包含__security_cookie符号的缓冲区溢出库。

有关此错误的更多信息,请访问:__security_cookie

以上是关于Libcurl c ++“未定义引用”(Windows / MinGW / g ++)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

对函数错误的未定义引用,同时使用 C 和 C++

c 中对“getline”的未定义引用

C语言里面对啥未定义引用是啥意思?

c ++对静态库函数的“未定义引用”[重复]

C程序中对'printf'的未定义引用

OpenCV“对'cv :: imread'等C ++的未定义引用