【问题标题】:Can not compile c++ program with libcurl library无法使用 libcurl 库编译 c++ 程序
【发布时间】:2019-03-23 22:13:15
【问题描述】:

我正在使用编译器 MinGW64 和 Clion developer。

我做了什么:

1) 从“https://curl.haxx.se/download.html”下载 curl-7.64.0.tar.gz

2) 通过cmd编译库-->curl-7.64.0 root-->'mingw32-make make'

3) 成功制作后,我将标头放在我的 MinGW 的包含文件夹中,libcurl.a 和 libcurldll.a 在我的 MinGW 的 lib 文件夹中。

4) 然后我尝试了在 Clion 中设置 CMake 的简单 libcurl 代码,如下所示:

cmake_minimum_required(VERSION 3.12)
add_executable(test main.cpp)
target_link_libraries(test libcurl.a libcurldll.a)

我的 main.cpp 代码如下:

#include <curl/curl.h>
#include <string>

int main()
{
    auto curl = curl_easy_init();
}

当我编译它时,我收到错误“进程完成,退出代码 -1073741515 (0xC0000135)”。

谁能告诉我哪里有问题?

【问题讨论】:

  • @Gox,我尝试通过'g++ main.cpp -lcurl -lcurldll'从项目文件夹编译程序,编译似乎没问题,但现在执行过程中出现错误'curl_easy_perform()失败:不支持的协议'
  • 我将其添加到我的答案中。

标签: c++ libcurl


【解决方案1】:

你必须把 -lcurl 放在 mingw 参数列表中。

你这样做了吗:

确保MinGW32的bin dir在搜索路径中,例如:

set PATH=c:\mingw32\bin;%PATH%

然后在根目录中运行 mingw32-make mingw32。还有其他 make 目标可用于构建具有更多功能的 libcurl,请使用:

mingw32-make mingw32-zlib to build with Zlib support;
mingw32-make mingw32-ssl-zlib to build with SSL and Zlib enabled;
mingw32-make mingw32-ssh2-ssl-zlib to build with SSH2, SSL, Zlib;
mingw32-make mingw32-ssh2-ssl-sspi-zlib to build with SSH2, SSL, Zlib and SSPI support.

如果您在链接库或查找头文件时遇到任何问题,请务必确认提供的“Makefile.m32”文件使用正确的路径,并根据需要进行调整。也可以使用环境变量覆盖这些路径,例如:

set ZLIB_PATH=c:\zlib-1.2.8
set OPENSSL_PATH=c:\openssl-1.0.2c
set LIBSSH2_PATH=c:\libssh2-1.6.0

也可以使用 MS LDAP 以外的其他 LDAP SDK 构建;目前可以使用本机 Win32 OpenLDAP 或 Novell CLDAP SDK 进行构建。如果你想使用这些,你需要设置这些变量:

set LDAP_SDK=c:\openldap
set USE_LDAP_OPENLDAP=1

或使用 Novell SDK:

set USE_LDAP_NOVELL=1

如果要启用 LDAPS 支持,请设置 LDAPS=1

https://curl.haxx.se/docs/install.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多