阿里云服务器免费领卷啦。

捡代码论坛-最全的游戏源码下载技术网站!

 找回密码
 立 即 注 册

QQ登录

只需一步,快速开始

搜索
关于源码区的附件失效或欺骗帖, 处理办法
查看: 1481|回复: 0

用openssl+libcurl编译出来的32位程序,release版本能正常运行...

[复制链接]

4208

主题

210

回帖

12万

积分

管理员

管理员

Rank: 9Rank: 9Rank: 9

积分
126180
QQ
发表于 2019-4-2 14:47:58 | 显示全部楼层 |阅读模式





问题描述:用openssl+libcurl编译出来的32位程序,release版本能正常运行,debug版为什么会调到 SysWOW64文件夹里面的库?如果 SysWOW64里面有相应的库倒没事,关键是很多用户是没有的

回答解析:
SysWOW64 是64位系统运行32位程序用的,户电脑上一般不会有debug的库啊


release版本就不依赖SysWOW64里的,但debug就依赖,肯定依赖吧,除非当前目录下已经有这个库了。


msvcr120d.dll 这个库,在release运行时,删掉照样能正常运行。但是在debug运行时,删掉这个库,就报缺少msvcr120d.dll


这个是debug 运行时库,删了肯定不行啊



主要是,他怎么依赖到syswow里去了,32位程序,system32里面,不是有同名的库吗?



所有的lib、dll、exe都编译为静态,就不会依赖这些msvcr*.dll了。


system32就是64位系统的文件, 至于为什么有个32, 估计是历史原因. 就像int在64位程序里面也是32位的



System32代表当前系统  32位操作系统就是32位 64位操作系统就是64位  64位操作系统会额外有一个syswow64的文件夹 这个文件夹的全名是 windows on windows64意思是 在64位操作系统中的32位操作系统  用来处理32位的程序运行  一般相应的操作系统都会带有一部分运行库 根据系统的不同自带的运行库版本也不尽相同 但可以确定的是全部为release 版本的  编译出来的debug 程序不经过特殊处理是无法直接运行的 安装编译器的时候会自带debug运行库 所以在开发机器上不会有问题 具体位置在 vs在安装目录下的vc文件夹里的crt目录里  在客户机上 debug 程序需要装debug 运行库 或者编译的时候将运行库编译进去。



一般发布出去的程序都是编译release 版本的  即使需要调试也可以把release 的编译时的优化关掉  把pdb打开  然后产生dump文件或者直接远程调试。



捡代码论坛-最全的游戏源码下载技术网站! - 论坛版权郑重声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者与捡代码论坛-最全的游戏源码下载技术网站!享有帖子相关版权
3、捡代码论坛版权,详细了解请点击。
4、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。
5、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。 我们不承担任何技术及版权问题,且不对任何资源负法律责任。
6、如无法链接失效或侵犯版权,请给我们来信:jiandaima@foxmail.com

回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立 即 注 册

本版积分规则

技术支持
在线咨询
QQ咨询
3351529868

QQ|手机版|小黑屋|捡代码论坛-专业源码分享下载 ( 陕ICP备15015195号-1|网站地图

GMT+8, 2024-4-27 00:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表