VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 324|回复: 10

VS2015编译生成exe后,如何自动生成该exe依赖的dll文件

[复制链接]
85_avatar_middle
最佳答案
3 
在线会员 发表于 2020-3-10 16:33:27 | 显示全部楼层 |阅读模式
本机编译后生成1个exe文件 本机能正常运行.  但是exe文件的输出目录没有生成依赖系统的dll

因为本机和虚拟机系统环境不一样,所以在虚拟机单独运行exe文件的时候就缺少这些依赖系统的dll

如何设置vs2015在本机编译输出exe文件的同时 ,自动输出exe依赖的系统dll?  而非手动复制.

现在用到的没有依赖第三方dll,就是依赖系统dll
需要的是动态MD编译  非MT这样解决.







上一篇:求助这道c++类的题,麻烦了!
下一篇:排序问题(菜)
77_avatar_middle
最佳答案
31 
online_vip 发表于 2020-3-10 16:48:10 | 显示全部楼层
下载个 VS2015 的运动库,安装到目标电脑上,就可以解决这个问题!
https://www.microsoft.com/zh-CN/download/details.aspx?id=48145

一般安装一些大型软件或者游戏的时候,都要求装这种VS的运行库
85_avatar_middle
最佳答案
3 
ico_lz  楼主| 发表于 2020-3-10 18:54:37 | 显示全部楼层
Health 发表于 2020-3-10 16:48
下载个 VS2015 的运动库,安装到目标电脑上,就可以解决这个问题!
https://www.microsoft.com/zh-CN/down ...

感谢大佬
网上找到了其他方式  使用后期生成事件命令copy /Y "$(TargetDir)$(ProjectName).dll"  "输出路径"  我试试看看怎么样
75_avatar_middle
最佳答案
18 
online_supermod 发表于 2020-3-10 19:02:03 | 显示全部楼层
你试试 发行模式  试试别用debug模式 试试或者使用静态MFC 动态库
85_avatar_middle
最佳答案
3 
ico_lz  楼主| 发表于 2020-3-10 23:48:22 | 显示全部楼层
wl1383838438 发表于 2020-3-10 19:02
你试试 发行模式  试试别用debug模式 试试或者使用静态MFC 动态库

1>------ 已启动生成: 项目: Win32_module_sock, 配置: Release Win32 ------
1>udp.obj : error LNK2001: 无法解析的外部符号 __imp__MessageBoxA@16
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__GetStockObject@4
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__SetBkMode@8
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__SetTextColor@8
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__GetMessageA@16
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__TranslateMessage@4
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__DispatchMessageA@4
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__SendMessageA@16
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__DefWindowProcA@16
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__PostQuitMessage@4
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__RegisterClassA@4
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__CreateWindowExA@48
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__GetSystemMetrics@4
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__UpdateWindow@4
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__SetWindowTextA@8
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__GetWindowTextA@12
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__LoadCursorA@8
1>WinMain.obj : error LNK2001: 无法解析的外部符号 __imp__LoadIconA@8
1>F:\visual studio 2015\Win32_module_sock\Release\Win32_module_sock.exe : fatal error LNK1120: 18 个无法解析的外部命令

MFC的使用  在静态库中使用 MFC   就这样,没用MFC
85_avatar_middle
最佳答案
3 
ico_lz  楼主| 发表于 2020-3-10 23:52:11 | 显示全部楼层
本帖最后由 tjzoo111 于 2020-3-10 23:54 编辑

xcopy  "$(DevEnvDir)Remote Debugger\$(PlatformShortName)\api*.dll"  "$(OutDir)dll\"
暂时就这样弄的  这范围太大了 还不准  
做个绿色的真不容易.......
87_avatar_middle
最佳答案
10 
在线会员 发表于 2020-3-11 08:58:38 | 显示全部楼层
选择静态编译选项,就会把依赖库包含进去了!
75_avatar_middle
最佳答案
18 
online_supermod 发表于 2020-3-11 09:22:18 | 显示全部楼层
tjzoo111 发表于 2020-3-10 23:48
1>------ 已启动生成: 项目: Win32_module_sock, 配置: Release Win32 ------
1>udp.obj : error LNK200 ...

搞定了吗  要不把工程文件  传上来  我看看
85_avatar_middle
最佳答案
3 
ico_lz  楼主| 发表于 2020-3-11 11:45:40 | 显示全部楼层
cqzj70 发表于 2020-3-11 08:58
选择静态编译选项,就会把依赖库包含进去了!

MT虽然简单  但是容易有问题呀  
MSDN说 跨DLL边界传递CRT对象的潜在错误
简单的说就是调用人家的dll容易有问题
85_avatar_middle
最佳答案
3 
ico_lz  楼主| 发表于 2020-3-11 11:49:20 | 显示全部楼层
wl1383838438 发表于 2020-3-11 09:22
搞定了吗  要不把工程文件  传上来  我看看

感谢大大已经暂时解决了
在事件生成后加入复制命令就可以发布绿色程序了
只是这种方法暂时不能精确的找出exe的依赖dll,
此方法用XCPOY命令 配合 模块查找工具应该能完善
80_avatar_middle
最佳答案
0 
在线会员 发表于 2020-3-11 20:21:49 | 显示全部楼层
我也遇到过,但不知道怎么处理。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-7-9 17:03

Powered by CcTry.CoM

© 2009-2020 cctry.com

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