| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3475 人关注过本帖
标题:如何编译就不在需要DLL文件
只看楼主 加入收藏
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
结帖率:96.55%
收藏
已结贴  问题点数:20 回复次数:5 
如何编译就不在需要DLL文件
用VS2010编写了程序,但如果拿到别的机器上,可能会需要MSVCR100.DLL文件。怎么能够不在依赖这个文件?我的意思是,我只给别人提供一个.EXE文件,别人就可以在自己的电脑上使用了。
搜索更多相关主题的帖子: 如何 
2011-09-22 22:57
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:7 
你是用Debug生成的? Debug生成的东西是这样的,你用Release编译一般情况都没问题,如果不行就试试
在程序编译前配置VS2010
2010里 项目->属性->配置属性->C/C++-代码生成->运行库->多线程 (/MT)
编译完就一个程序,放到哪都可以运行。



[ 本帖最后由 xg5699 于 2011-9-22 23:28 编辑 ]

都不结贴我郁闷那!
2011-09-22 23:11
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:709
专家分:2063
注 册:2010-11-11
收藏
得分:0 
Release生成的,主要是依赖MSVCR100.dll,别人的机子上可能会没有
2011-09-23 01:31
tisyang
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:132
专家分:737
注 册:2011-5-7
收藏
得分:7 
如果使用了 MFC的库,请在项目设置里选择静态链接,但是VC2010的程序都会依赖 2010版的 C运行库,如果没有这个运行库的话,貌似还是无法运行的。

C++ 用无参数构造函数生成对象时候请勿在构造函数后添加无用的那一对括号,否则有可能会被当成函数声明而忽略,嗯,栈上构建的时候就是这样。
2011-09-23 08:34
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:7 
只要你的程序兼容其它编译器,换成codelite/codeblocks/c-free或是vc6编译一下,不管用静态还是动态链结,一个exe在多个win/pe操作系统下面可运行。

我们都在路上。。。。。
2011-09-23 12:09
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:0 
回复 3楼 八画小子
使用vs2010编译出来的EXE应用程序在别的机子上运行时会提示找不到MSVCR100.dll,这该怎么解决呢?

一、在运行程序的计算机上安装vc2010运行库(很好的办法呀)

说明:这种方法需要用户自己去安装,一般适用于大型程序,小程序不建议使用。

二、在应用程序同目录上附带MSVCR100.DLL文件

说明:这种方法适用于一些小项目,无需用户另外安装程序。

点我下载msvcr100.dll



三、在程序编译前配置VS2010

项目->属性->配置属性->C/C++-代码生成->运行库->多线程 (/MT)

说明:这种方法应该对于一些程序来说最实用,仅需一个程序,放到哪都可以运行。

/MT意思就是静态编译VC运行库,静态了之后就不会再依赖MSVCR100.DLL或者MSVCR80.DLL(使用VS2005)了。
附带说明:
MSVCR80.DLL是vs2005编译器默认的库
MSVCR90.DLL是vs2008
MSVCR100.DLL是vs2010的



都不结贴我郁闷那!
2011-09-23 12:40
快速回复:如何编译就不在需要DLL文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018332 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved