导航:首页 > 源码编译 > 之前能用的程序重新编译不能用了

之前能用的程序重新编译不能用了

发布时间:2022-11-05 18:56:22

Ⅰ 程序代码正确\但是编译时显示一个错误\运行不了\除了第一次编写的可以用\后来其他的都用不好

你的程序中含有不可见的中文字符。

Ⅱ 请问在 Dev C++ 里编写的 Windows 程序,为什么原先可以编译的,但修改了之后再改回来就不能编译了呢

说明白点,就是你自己编译并运行后那个运行框没关闭,就又再编译。一些编译器不能打开多个运行框,如:Dev

Ⅲ 用c++编好的程序为什么保存好了再次打开编译就会出现问题

首先检查你的ide环境是不是完备;其次检查你的操作系统环境是不是兼容;最后检查你的代码是不是正确。

Ⅳ 本来这个代码之前可以运行,后面重装了C++后就不能运行了,编译后就有这个问题,求解

VC9编译的程序在没有装过VC9(确切的说是.Net Framework3.5)的机器上运行时,如果提示“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”这个错误,那 么就说明该程序动态链接了VC9的运行时库,(如果还用到了MFC,那么可能动态链接了VC9的MFC库,同理还有ATL库),以及缺少对应的 manifest文件,程序在目标机器上没有找到这些库和配置文件,因此导致了这个错误。出现这种情况的VC9编译器可能存在3个版本,接下来分别阐明:
1、没有打过任何补丁的VS2008
该版本对应的CRT/MFC/ATL库的版本号为9.0.21022.8,这个版本号在后面 会用到。这个版本的程序部署比较简单,直接把VC安装目录下的redist目录(C:/Program Files/Microsoft Visual Studio 9.0/VC/redist)中需要的库以及对应的manifest文件拷贝到执行程序同目录下,这样程序到任何机器上都能够正常运行了。
2、打过SP1补丁的VS2008
打过该补丁后,系统中存在着两个版本的CRT/MFC/ATL库,版本号分别为 9.0.21022.8和9.0.30729.1,这导致了manifest文件中记录的版本号和实际库的版本号不一致(程序要求它们的版本号一致才能运 行)。这个版本的程序部署需要两个步骤,首先要使manifest文件中依赖项的版本号与实际库的版本号一致,均为9.0.30729.1,方法是在工程 设置中增加一个宏定义_BIND_TO_CURRENT_VCLIBS_VERSION,该宏定义于C:/Program Files/Microsoft Visual Studio 9.0/VC/include/crtassem.h文件中,然后重新编译程序。接下来还是将VC安装目录下的redist目录(C:/Program Files/Microsoft Visual Studio 9.0/VC/redist)中需要的库以及对应的manifest文件拷贝到执行程序同目录下,然后修改manifest文件中依赖项的版本号为 9.0.21022.8,这样使得程序误以为该目录下库的版本号为9.0.21022.8(实际上是9.0.30729.1版本),这样程序到任何机器上 都能够正常运行了。
3、打过SP1补丁与SP1 ATL 安全更新 (KB973675)的VS2008
这是最新的更新。在SP1补丁之后,微软又于近日发布了一个用于智能设备的 Microsoft Visual Studio 2008 Service Pack 1 ATL 安全更新 (KB973675), 该补丁又将CRT/MFC/ATL库的版本号升级,为9.0.30729.4148,这次升级比较好,manifest文件与库的版本号一致了,不像 SP1一样升级的不彻底。这样只需要在工程设置中增加一个宏定义_BIND_TO_CURRENT_VCLIBS_VERSION,接下来重新编译程序, 然后直接把VC安装目录下的redist目录中需要的库以及对应的manifest文件拷贝到执行程序同目录下,这样程序到任何机器上都能够正常运行了。
顺便提一下,如果不想在发布程序时带上这些库和manifest文件(如果没有必要的话),那么可以采用静态编译CRT和MFC,然后把manifest文件添加到资源中,这样编译出的程序只要一个exe就可以在任何机器上直接运行了。
参考文章:
1、“应用程序配置不正确,程序无法启动”的解决方法资料收集:
有的时候,你在Visual C++上面经过好几个月的辛勤努力,终于将程序编写完成并且测试完毕,然而当你试图在客户的发布机上运行刚写好的程序时,有可能会碰到类似下面的错误,操 作系统告诉你“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”.
一般情况下,这个问题都是由于程序不能找到所需要的C运行库(CRT)而引起的。

在Windows XP SP2以后,Windows引入了Side-by-Side执行的概念,这个概念本来是.NET提出来的,但是Windows后来将这个概念集成到操作系统层面上来了。大家都应该知道Dll Hell 的问题,为了解决Dll Hell 的问题,Side-By-Side提出不同版本的dll文件可以同时存在于同一个系统里面,而且依赖于不同版本dll的应用程序在运行的时候可以使用到它当初被编译生成的dll。前面的话,有点绕,举个例子:
1. 假定你编写了一个C++程序A,是使用MFC 8.0(这个版本是随着Visual Studio 2005)发布的。
2. 之后你的机器升级了Visual Studio的版本,从2005升级到2008,2008的MFC库是9.0版本的,这个时候你的操作系统里面安装了两个版本的MFC,分别是8.0和9.0。
3. 你在Visual Studio 2008编写了另外一个C++程序B,B依赖与MFC 9.0。
4. 如果你运行程序A的话,操作系统会将MFC 8.0加载到A的进程里面。
5. 如果你这时同时运行程序B,操作系统会将MFC 9.0加载到B的进程里面。这就是Side-by-side的执行概念。

操作系统之所以能够这样做,是因为它在加载程序A和B之前,除了查看PE格式里面A和B所依 赖的Dll信息,都会查看A和B的manifest文件。Manifest文件保存了Windows可执行文件(包括exe和dll文件)要运行起来的环 境设置信息,文件名一般是可执行文件的文件全名加上.manifest。例如notepad.exe的manifest文件就应该是 notepad.exe.manifest。例外有的程序将manifest文件直接嵌入到可执行文件的资源里面了,这也就是为什么有的时候你看不到程序 的manifest文件的原因。通常来说,一个manifest文件的内容如下(test.exe.manifest文件):

Ⅳ 重新打开一前编译的文件,就不能再编译了,出现这个错误,怎么整啊,跪求大佬解救

可能的原因及解决办法:
1.
已有一个本程序的实例在运行了。只需先关闭运行的实例再编译就行了。
2.
因代码中使用了未定义的变量或函数,导致发生了链接错误。加上变量或函数的定义就行了。

Ⅵ 以前编的fortran程序,现在为什么不能用

这通常不是由不同的计算机引起的,而是不同的编译器和操作系统引起的。

每个编译器对语法的检查程度不同,对堆栈的分配方式不同。

这个错误是堆栈溢出,这通常发生在循环较多的大型程序中,特别是对于递归函数调用,或者大型数组应用的程序里。

你可以有两条途径解决:
1.减少堆栈的使用。主要通过把固定大小的数组改为可分配数组来解决。
2.增加堆栈的大小。这是一个对编译器的操作。需要你翻阅你所使用的编译器的说明书(帮助文档)来确定具体的操作。
以Compaq Visual Fortran为例:
选Project => Settings => Link => Category: Output =>
Stack allocations
Reserve: 这里填新值(默认为1M,若需要10M,则填10000000)

如果你使用其他的编译器,你也可以追问,告诉我你的编译器品牌和版本。我看是否熟悉它。

Ⅶ C语言源代码编译一次后,就不能再编译

你用输出的二进制运行文件覆盖了源代码,改成gcc helloworld.c -o helloworld, (去掉后缀)
-o 表示输出到

Ⅷ C++,为什么我的程序能运行 再次编译却不行了

编译的时候提示什么问题?是不是有错误?
应该是你之前已经编译好了,现在的代码有问题,你直接运行的话,就是运行之前的程序,再次编译成功后才会运行现在的程序。
不然就是编译器的问题吧

Ⅸ 同样的程序之前可以编译 然后突然就不能编译了 还不报错

都编译过了,已经有HEX文件,还编译干嘛

Ⅹ 易语言调试运行的时候好用,静态编译后的程序就不能正常使用

你的源码能不能上传一下呢? 首先您的 串口 你得确定是否正确 然后 确定下 代码 有没有调试输出的代码 因为调试输出这些代码 在编译的时候 都会去掉的 一般新手 都会很容易无视掉

阅读全文

与之前能用的程序重新编译不能用了相关的资料

热点内容
caj文件夹打不开 浏览:473
什么app可以将电量变色 浏览:690
解放出你的解压抖音小游戏 浏览:343
什么方式解压比较好 浏览:264
erp是什么服务器 浏览:184
python中tmp 浏览:21
说明wpf加密过程 浏览:143
java读取list 浏览:703
iis7gzip压缩 浏览:39
有什么安卓机打吃鸡好 浏览:597
三星u盘加密狗 浏览:473
php函数的返回值吗 浏览:587
国企稳定程序员 浏览:328
编程猫如何使用教程视频 浏览:218
安卓远端网页如何打日志 浏览:218
压缩flash大小 浏览:993
解压的玩具教程可爱版 浏览:366
哪个求职app比较靠谱 浏览:888
java的读法 浏览:61
nod32局域网服务器地址 浏览:1003