求助:VS开发的c++程序如何打包成一个独立的exe文件?

球场上面压水花 2017-01-06 04:55:01
我用VS2013写了一个简单的小程序,VS编译生成的那个exe文件在我自己的计算机上是可以双击便开始运行这个控制台程序的,可是这个exe是依赖于我自己计算机这个环境的,比如说我程序里面配置好的一些第三方库(OpenCV)或者源代码头文件这些东西。现在我想要把这一系列的东西(源代码、头文件、第三方库)全部打包成一个程序,让我能够不依赖环境的随时随地地执行我的这个程序(比如用优盘直接把这个打包结果拷贝到另外一台计算机上,哪怕那台计算机上面没有OpenCV库、没有VS,也可以通过双击直接运行这个控制台程序)。请问,我要怎么做?小弟是C++才入门的小菜鸟,如果问了什么笨问题,还请大家见谅。先谢谢大家啦~~
...全文
10471 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_40356635 2017-10-16
  • 打赏
  • 举报
回复 1
您好 我目前遇到和您一样的问题 您最后是怎么解决的?
lunat 2017-01-10
  • 打赏
  • 举报
回复
执行程序不依赖头文件、源代码。依赖EXE/DLL/服务/配置文件/环境变量等等。 如果复杂的话,打包成一个安装程序就行了。
赵4老师 2017-01-10
  • 打赏
  • 举报
回复
在两台电脑上分别使用depends.exe查看你exe依赖的dll
小灸舞 2017-01-09
  • 打赏
  • 举报
回复
http://www.cr173.com/soft/46737.html 查看依赖的DLL,然后一起打包
  • 打赏
  • 举报
回复
引用 2 楼 heyuhang112 的回复:
对于第三方的库,采用静态链接方式。若没有静态链接版本,只有dll,发布时把对应的dll一起拷过去。 对于c++运行时库,选择静态编译方式,发布的时候便可不依赖目标机上是否安装了c++环境。编译的时候要设置一下,在项目属性页->C/C++->Code Generation->Runtime Library,设置成Multi-threaded (/MT)或者是Multi-threaded Debug (/MTd)就是静态编译版本了。
你好,非常感谢你的回答,我按照你说的把所有库换成了静态库并且生成代码改成了MT,也正常编译通过可以运行了,然后我该怎么做呢?因为我把release文件夹下的exe程序换一台电脑还是跑不了,说什么已停止工作
  • 打赏
  • 举报
回复
非常感谢大家的回答,我已经将代码中的库全部变为了静态库并且可以编译运行,我现在应该做什么呢?
  • 打赏
  • 举报
回复
引用 1 楼 ccc 的回复:
封装成一个dll或者静态库
你好,非常感谢你的回答,我按照你说的把所有库换成了静态库并且生成代码改成了MT,也正常编译通过可以运行了,然后我该怎么做呢?因为我把release文件夹下的exe程序换一台电脑还是跑不了,说什么已停止运行
小竹浮生 2017-01-07
  • 打赏
  • 举报
回复
用depends工具看下你程序的依赖DLL,找到他们和程序放在一起,因为有些第三方组件是动态加载的,给其他电脑使用的时候必须带上他们
zilaishuichina 2017-01-06
  • 打赏
  • 举报
回复
yes-hyh 2017-01-06
  • 打赏
  • 举报
回复
对于第三方的库,采用静态链接方式。若没有静态链接版本,只有dll,发布时把对应的dll一起拷过去。 对于c++运行时库,选择静态编译方式,发布的时候便可不依赖目标机上是否安装了c++环境。编译的时候要设置一下,在项目属性页->C/C++->Code Generation->Runtime Library,设置成Multi-threaded (/MT)或者是Multi-threaded Debug (/MTd)就是静态编译版本了。
ccc 2017-01-06
  • 打赏
  • 举报
回复
封装成一个dll或者静态库

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧