在使用thrift的过程中, 当我使用完thrift debug版本编译出来的库调试完成后, 改成release版本的时候, 就出现了如下错误, 莫名其妙啊, 同一套代码, 那只能是编译库的时候设置和调用库时候的设置不一样, 然后就对影响库版本的主要原因都一个一个的去对应, 对应完成之后, 发现还是报错, 刚开始以为那个地方遗漏了, 然后又反反复复的去匹配, 还是一样的错误, 弄了几个小时, 就为了这一个问题, 毫无头绪, 最后发现编译release版本库的时候报了一个警告, 也没抱多大希望, 就随便百度一下, 然后就在修改了一下个人任务无关紧要的配置, 这一改, 重新编译库, 重新编译调用库的程序, 我去奇迹发生了, 既然编译通过了, 那真的爽啊, 人一下就轻松了

编译release警告如下:(这件事情告诉我们, 在我们编译程序的时候, 请不要忽略任何一个警告, 否则,有你“爽“”的)

LINK : 找到 MSIL .netmodule 或使用 /GL 编译的模块;正在使用 /LTCG 重新启动链接;将 /LTCG 添加到链接命令行以改进链接器性能

修改thrift库release配置:

工程-> 属性 -> c/c++ -> 优化 -> 全程序优化 -> 是(/GL) 改成否

报错如下

1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_get_rbio
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_peek
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_get_shutdown
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_get_wbio
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_connect
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _OPENSSL_init_ssl
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _X509_get_ext_d2i
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _TLSv1_method
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_set_default_passwd_cb
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ASN1_STRING_length
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _X509_free
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ERR_clear_error
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _TLS_method
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_free
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_set_options
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_get_peer_certificate
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_new
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_free
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _OPENSSL_sk_pop_free
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_ctrl
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ERR_error_string
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _X509_verify_cert_error_string
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _OPENSSL_sk_value
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_use_PrivateKey_file
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_set_fd
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ASN1_STRING_data
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _CRYPTO_free
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_new
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_write
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_get_verify_result
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _TLSv1_2_method
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_set_default_passwd_cb_userdata
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_ctrl
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _X509_NAME_ENTRY_get_data
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _TLSv1_1_method
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_set_verify
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _X509_get_subject_name
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _OPENSSL_sk_num
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _CONF_modules_unload
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _OPENSSL_init_crypto
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_accept
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_pending
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ERR_get_error
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _X509_NAME_get_index_by_NID
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_read
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_set_cipher_list
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_load_verify_locations
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_CTX_use_certificate_chain_file
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_shutdown
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_get_verify_mode
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ASN1_STRING_to_UTF8
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ERR_peek_error
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ERR_reason_error_string
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _BIO_ctrl
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _RAND_poll
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _SSL_get_error
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _ERR_remove_state
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _GENERAL_NAME_free
1>libthrift.lib(TSSLSocket.obj) : error LNK2001: 无法解析的外部符号 _X509_NAME_get_entry
1>D:\RPC\TestRPC\TestRPCDemo\Release\RPC_CLIENT.exe : fatal error LNK1120: 59 个无法解析的外部命令

VS2017 Thrift编译出的Release版本的库调用报错LNK2001的更多相关文章

  1. unity, unity默认的Arial字体在编译出的h5版本中不显示

    unity默认的Arial字体在编译出的h5版本中不显示.改用自己的字体可显示.

  2. USGS-EROS项目espa-surface-reflectance中的Landsat8 大气校正LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本(四)

    ,支持一些关键问题: 1    数据初始化问题.该问题是指在linux环境下编程标准c并编译,用户定义的变量默认初始值是0,但在windows 64 win7环境中,变量默认初始值是负值极小.... ...

  3. Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)

    Landsat8大气校正程序LaSRC是目前最好的,使用方式也够傻瓜,输入文件输出结果. 但有一个限制,就是程序需要预先下载好的MODIS辅助文件来确定水汽.压强等大气参数. 如果待大气校正的land ...

  4. 使用vs2010 opencv2.4.4编译release版本程序

    大体上要注意一下几点内容: 1.vc++目录的选择上,库目录选择为opencv目录中的staticlib目录 2.在链接->输入->附加依赖库,中添加,相应的staticlib库目录中的所 ...

  5. Debug版本正常运行,Release版本编译通过但运行崩溃

    解决这个问题之前,第一个想的是Debug版本和Release版本有什么区别 Debug版: 经过编译器编译出的项目.exe文件大,而且生成的二进制命令没有经过编译器的优化.项目中包含着丰富的调试信息, ...

  6. qgis3.16.6+vs2017再编译(debug+release)

    参考 https://www.cnblogs.com/superbi/p/11188145.html 文章以及其它文章,对qggis3.16.6进行了重新编译 一.编译准备 1.Cygwin 1.1安 ...

  7. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  8. Debug 运行正常,Release版本不能正常运行总结(转)

    引言      如果在您的开发过程中遇到了常见的错误,或许您的Release版本不能正常运行而Debug版本运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release版本可以保证您的应用程 ...

  9. 【转】Debug 运行正常,Release版本不能正常运行

    http://blog.csdn.net/ruifangcui7758/archive/2010/10/18/5948611.aspx引言 如果在您的开发过程中遇到了常见的错误,或许您的Release ...

随机推荐

  1. IT兄弟连 HTML5教程 HTML5行业的发展预测

    现在的互联网市场上,HTML5在快速地成长,甚至是未来几年里将会有很多公司进入HTML5这个领域,HTML5也会像传统的Flex,Flash,Silverlight和Objective-C那样,更容易 ...

  2. python多进程multiprocessing Pool相关问题

    python多进程想必大部分人都用到过,可以充分利用多核CPU让代码效率更高效. 我们看看multiprocessing.pool.Pool.map的官方用法 map(func, iterable[, ...

  3. mysql 分表的三种方法

    原文:https://www.cnblogs.com/lucky-man/p/6207873.html   一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查 ...

  4. tinker接入

    对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换. 下面以本人的经验介绍下微信的tinker接入: 命令行接入方式: gradle接入 ...

  5. 黄聪:php一句代码让http跳转https

    //其他框架请加到入口某共公加载的文件中 //方法一 https状态 if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off'){ Head ...

  6. log4net快速上手

    原文地址:https://www.cnblogs.com/lsgsanxiao/p/5845300.html 略有删改 1.配置文件,可以单独创建log4net.config文件,然后手动指定目录,也 ...

  7. PHP常见循环例题

    以下的每道题都没有固定的写法,可以使看的人更好的理解 1.通过for循环将数组中值求和.求平均值 <?php //1.求数组的和.平均值 $num=[1,20,53,23,14,12,15]; ...

  8. centos 7 搭建vsftp

    一.FTP简介 1.ftp 概述                                                FTP:(file  transfer  protocol文件传输协议) ...

  9. django4-模板进阶

    1.模板系统的语法 引用变量数据: {{  }} 标签逻辑操作:{%...%} 2.变量 变量名由字符数字下划线组成 ,可以执行由视图函数传过来的对象的方法和属性 ,但是视图函数中如果使用 ' . ' ...

  10. 移动端rem适应布局

    移动端rem适应布局 rem rem(root em)是一个相对单位,类似于em,em是父元素字体大小. 不同的是rem的基准是相对于html元素的字体大小. 比如,根元素(html)设置font-s ...