VS2017 Thrift编译出的Release版本的库调用报错LNK2001
在使用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的更多相关文章
- unity, unity默认的Arial字体在编译出的h5版本中不显示
unity默认的Arial字体在编译出的h5版本中不显示.改用自己的字体可显示.
- USGS-EROS项目espa-surface-reflectance中的Landsat8 大气校正LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本(四)
,支持一些关键问题: 1 数据初始化问题.该问题是指在linux环境下编程标准c并编译,用户定义的变量默认初始值是0,但在windows 64 win7环境中,变量默认初始值是负值极小.... ...
- Lansat8大气校正USGS-EROS项目espa-surface-reflectance中的LaSRC Version 1.3.0模块利用vs2010编译出windows64位版本的使用(三)
Landsat8大气校正程序LaSRC是目前最好的,使用方式也够傻瓜,输入文件输出结果. 但有一个限制,就是程序需要预先下载好的MODIS辅助文件来确定水汽.压强等大气参数. 如果待大气校正的land ...
- 使用vs2010 opencv2.4.4编译release版本程序
大体上要注意一下几点内容: 1.vc++目录的选择上,库目录选择为opencv目录中的staticlib目录 2.在链接->输入->附加依赖库,中添加,相应的staticlib库目录中的所 ...
- Debug版本正常运行,Release版本编译通过但运行崩溃
解决这个问题之前,第一个想的是Debug版本和Release版本有什么区别 Debug版: 经过编译器编译出的项目.exe文件大,而且生成的二进制命令没有经过编译器的优化.项目中包含着丰富的调试信息, ...
- qgis3.16.6+vs2017再编译(debug+release)
参考 https://www.cnblogs.com/superbi/p/11188145.html 文章以及其它文章,对qggis3.16.6进行了重新编译 一.编译准备 1.Cygwin 1.1安 ...
- 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 ...
- Debug 运行正常,Release版本不能正常运行总结(转)
引言 如果在您的开发过程中遇到了常见的错误,或许您的Release版本不能正常运行而Debug版本运行无误,那么我推荐您阅读本文:因为并非如您想象的那样,Release版本可以保证您的应用程 ...
- 【转】Debug 运行正常,Release版本不能正常运行
http://blog.csdn.net/ruifangcui7758/archive/2010/10/18/5948611.aspx引言 如果在您的开发过程中遇到了常见的错误,或许您的Release ...
随机推荐
- IT兄弟连 HTML5教程 HTML5行业的发展预测
现在的互联网市场上,HTML5在快速地成长,甚至是未来几年里将会有很多公司进入HTML5这个领域,HTML5也会像传统的Flex,Flash,Silverlight和Objective-C那样,更容易 ...
- python多进程multiprocessing Pool相关问题
python多进程想必大部分人都用到过,可以充分利用多核CPU让代码效率更高效. 我们看看multiprocessing.pool.Pool.map的官方用法 map(func, iterable[, ...
- mysql 分表的三种方法
原文:https://www.cnblogs.com/lucky-man/p/6207873.html 一,先说一下为什么要分表 当一张的数据达到几百万时,你查询一次所花的时间会变多,如果有联合查 ...
- tinker接入
对于热修复无非就是两大类,一类是tencent代表的classloader模式的,另一类是阿里系代表的底层方面替换. 下面以本人的经验介绍下微信的tinker接入: 命令行接入方式: gradle接入 ...
- 黄聪:php一句代码让http跳转https
//其他框架请加到入口某共公加载的文件中 //方法一 https状态 if(!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off'){ Head ...
- log4net快速上手
原文地址:https://www.cnblogs.com/lsgsanxiao/p/5845300.html 略有删改 1.配置文件,可以单独创建log4net.config文件,然后手动指定目录,也 ...
- PHP常见循环例题
以下的每道题都没有固定的写法,可以使看的人更好的理解 1.通过for循环将数组中值求和.求平均值 <?php //1.求数组的和.平均值 $num=[1,20,53,23,14,12,15]; ...
- centos 7 搭建vsftp
一.FTP简介 1.ftp 概述 FTP:(file transfer protocol文件传输协议) ...
- django4-模板进阶
1.模板系统的语法 引用变量数据: {{ }} 标签逻辑操作:{%...%} 2.变量 变量名由字符数字下划线组成 ,可以执行由视图函数传过来的对象的方法和属性 ,但是视图函数中如果使用 ' . ' ...
- 移动端rem适应布局
移动端rem适应布局 rem rem(root em)是一个相对单位,类似于em,em是父元素字体大小. 不同的是rem的基准是相对于html元素的字体大小. 比如,根元素(html)设置font-s ...