自己用C编写的程序生成的exe文件在别的机子怎么运行不了?
我用VC++2008写的程序,把文件夹里的生成的exe文件发给别人,别人怎么运行不了?那要怎么弄成静态连接呢?...
我用VC++ 2008写的程序,把文件夹里的生成的exe文件发给别人,别人怎么运行不了?
那要怎么弄成静态连接呢? 展开
那要怎么弄成静态连接呢? 展开
6个回答
展开全部
其实一般在编程序时,都是生成了调试版的程序,就是在那个Debug目录下的可执行文件。运行这调试版的exe文件,都会动态连接 MFC42D.DLL和MSVCRTD.DLL这两个文件,所以你如果将这个文件在其它机器上运行而这台机器没有这两个文件或者缺少一个,系统则会出现: “找不到所需.dll文件-某某.dll”这样的提示。而一般系统都不带有这两个文件,除非是装了vc等。解决方法很简单:1,选择菜单build->Set Active Configuration,然后选择Release, 2,选择菜单project->settings,在General选项卡里第一项选择Use MFC in a static Library,即静态连接其实这就是生成了发布版程序,在Release目录下,可执行文件不会用到那两个讨厌的dll文件,一般到别的机器上都能用,试试吧!
OK,我照做了,写了另一个程序,然后到处找人做实验。结果是正确的。当对方机子上有VC时,我们用DEBUG和动态链接库编的程序是可以用的;否则,就会提示出错,只能用Release和静态链接。因此,要做一个通用的程序,就必须用发布版。
OK,我照做了,写了另一个程序,然后到处找人做实验。结果是正确的。当对方机子上有VC时,我们用DEBUG和动态链接库编的程序是可以用的;否则,就会提示出错,只能用Release和静态链接。因此,要做一个通用的程序,就必须用发布版。
展开全部
不同的机器可能它门用的库不一样,c语言的可移植是一次编写多次编译
你的饿代码没问题的话,你把代码发给他,让他从新编译就可以了 ,或者弄成静态连接也可以,动态联接是在运行时才连接库的,静态是编译的时候就连接库进程序
你的饿代码没问题的话,你把代码发给他,让他从新编译就可以了 ,或者弄成静态连接也可以,动态联接是在运行时才连接库的,静态是编译的时候就连接库进程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为别人的电脑没有运行exe文件的权限或他人的操作系统中缺少必要的元素 如windows sdk、mfc等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把运行库也编近来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你弄成静态的就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询