【问题标题】:Libcurl c++ "undefined reference to" (Windows/MinGW/g++) [duplicate]Libcurl c++“未定义的引用”(Windows/MinGW/g++)[重复]
【发布时间】:2018-09-10 13:48:40
【问题描述】:

我正在尝试编译这段代码,

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

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

如果有人可以帮助我,那就太好了。

【问题讨论】:

    标签: c++ compilation linker g++ libcurl


    【解决方案1】:

    您将需要链接到 bufferoverflow.lib 库之一或重建 lib curl 而不使用 /GS 编译器开关。

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

    有关此错误的更多信息,请访问:https://support.microsoft.com/en-us/help/894573/you-may-receive-the-linker-tools-error-lnk2001-error-messages-when-you

    【讨论】:

    • 这对我帮助很大。如果你愿意,你也可以看看我的第二个错误。
    • @Davidiniooo 请不要那样做。如果您有第二个问题,请提出第二个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2019-10-12
    相关资源
    最近更新 更多