• 编译静态的 支持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 即可。

  • 相关阅读:
    hdoj 1002 A + B Problem II
    hdoj 1234 开门人和关门人
    hdoj 2203 亲和串
    nyoj 73 比大小
    81B
    信息传递
    bzoj1787
    最少交换次数
    100803C
    火柴排队
  • 原文地址:https://www.cnblogs.com/xzh1993/p/14985409.html
Copyright © 2020-2023  润新知