zoukankan      html  css  js  c++  java
  • 编译静态的 支持https协议的 libcurl 库无法加载问题

    下载libcurl的源码,打开lib文件夹下项目,编译为静态链接库。

    在编译的时候出现问题如下:

    注:以前在vc2005下用mfc工程并且libcurl用的dll方式没问题,这次vc2008用的sdk并且libcurl用的静态编译,也不知道什么问题引起的

    HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_slist_free_all
    1>HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_easy_cleanup
    1>HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_easy_getinfo
    1>HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_easy_setopt
    1>HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_slist_append
    1>HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_easy_init
    1>HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_global_init
    1>HttpWebRequest.obj : error LNK2001: 无法解析的外部符号 __imp__curl_easy_perform

    上网查了好久找到了这个链接:

    http://bobobobo.wordpress.com/2008/11/08/working-with-curl-getting-started-the-easy-way-on-win32/终于解决了问题

    具体步骤就是:

    1、给工程添加依赖的库:项目->属性->链接器->输入->附加依赖项,把libcurl.lib ws2_32.lib winmm.lib wldap32.lib添加进去

    注意,debug配置用libcurld.lib

    2、加入预编译选项:项目->属性->c/c++ ->预处理器->预处理器,把  ;BUILDING_LIBCURL;HTTP_ONLY复制进去(注意不要丢了";")

    编译报错内容:

     
    1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertFreeCertificateContext@4
    1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertGetCertificateContextProperty@16
    1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertOpenStore@20
    1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertFindCertificateInStore@24
    1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertEnumCertificatesInStore@8
    1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertCloseStore@8
    1>libcrypto.lib(e_capi.obj) : error LNK2001: 无法解析的外部符号 __imp__CertDuplicateCertificateContext@4
    1>D:codeopensslbaseappReleasePosCipherTest.exe : fatal error LNK1120: 7 个无法解析的外部命令
    1>


    这个错误是因为openssl库使用了windows的一个密码学库: Crypt32

    只要在 项目属性 - 链接器 - 输入 - 附加依赖项 中加入: Crypt32.lib 即可。

  • 相关阅读:
    此时的我,就像一个炸药包...
    我焦躁,并不只是心里承受,还是因为我上面担着。
    我们应该顶住压力
    git初识后的一些问题
    我近期应该找个机会休整一下了
    权限管理设计的一些感悟
    一个无用的功能
    关于IE8与FireFox中,button内字体总是有一个不垂直居中的问题
    Android之EditText文本框监听事件
    Android流量统计TrafficStats类的使用
  • 原文地址:https://www.cnblogs.com/xzh1993/p/14985409.html
Copyright © 2011-2022 走看看