C++ 找不到Libcurl OpenSSL

C++ 找不到Libcurl OpenSSL,c++,c,visual-studio-2013,libcurl,C++,C,Visual Studio 2013,Libcurl,这是非常烦人的。我已经试着解决这个问题好几个星期了。。。 我已经成功地用OpenSSL构建了libcurl,但这段代码一直返回false。我想我最后的选择是找到一个预构建的库(DLL发行版-DLL OpenSSL)。 编辑: 忘了补充一句,我尝试了我能找到的所有相关解决方案,但没有一个有效。顺便说一句,这是针对VS的 curl_version_info_data * vinfo = curl_version_info(CURLVERSION_NOW); if (vinfo->feature

这是非常烦人的。我已经试着解决这个问题好几个星期了。。。 我已经成功地用OpenSSL构建了libcurl,但这段代码一直返回false。我想我最后的选择是找到一个预构建的库(DLL发行版-DLL OpenSSL)。 编辑: 忘了补充一句,我尝试了我能找到的所有相关解决方案,但没有一个有效。顺便说一句,这是针对VS的

curl_version_info_data * vinfo = curl_version_info(CURLVERSION_NOW);
if (vinfo->features & CURL_VERSION_SSL)
    MessageBoxA(0, "Yes", 0, 0);
else
    MessageBoxA(0, "No", 0, 0);

下面是我的分步说明,说明如何使用和Visual Studio(任何版本)进行构建

先决条件:

  • 已安装Microsoft Visual Studio
  • 已安装的CMake
  • 按照描述构建和安装OpenSSL开发库(在我的例子中,我在这里安装了它,使用perl Configure--prefix=C:\WORK\MSVC2013.64\OpenSSL…)
  • 逐步程序:

    git clone https://github.com/bagder/curl.git
    cd curl
    mkdir b.msvc
    cd b.msvc
    cmake .. -G"Visual Studio 12 2013 Win64" -DOPENSSL_ROOT_DIR=C:\WORK\MSVC2013.64\openssl
    
    当CMake运行时,请确保找到OpenSSL

    --找到OpenSSL:C:/WORK/MSVC2013.64/OpenSSL/lib/ssleay32.lib;C:/WORK/MSVC2013。 64/openssl/lib/libeay32.lib(发现版本为“1.0.2a”)

    完成所有操作后,您将找到解决方案文件CURL.sln,该文件可以在Visual Studio中打开,也可以使用命令构建

    cmake --build . --config Release
    
    然后检查它是否是在启用OpenSSL的情况下构建的

    C:\WORK\GitHub\curl\b.msvc\src\Release>curl.exe --version
    curl 7.42.0-DEV (Windows) libcurl/7.29.1-DEV OpenSSL/1.0.2a
    Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp
    Features: NTLM SSL
    
    另一件事-您可以为cmake提供以下选项

    -DCMAKE_INSTALL_PREFIX=<要安装curl/libcurl的路径>

    然后

    将curl/libcurl安装到提供的位置


    希望这能有所帮助。

    您是否尝试过使用cmake构建库?您可能应该告诉我们如何构建库的详细信息,因为这可能是问题所在。您可能没有告诉libcurl的confgure脚本在哪里可以找到openssl之类的东西。对于它的价值,你可以考虑远离VisualStudio,而不是使用这些东西。MSYS2附带了一个包含libcurl的解决方案。@Sergey不,我没有尝试过。@David Grayson我用VS 2013解决方案构建了libcurl。如果有人有预构建的库,他们可以链接我,那就太好了。MSYS2包有一个预构建的dll:
    cmake --build . --config Release --target INSTALL