为啥我的exe文件没有在其他电脑上运行? [调试]

Posted

技术标签:

【中文标题】为啥我的exe文件没有在其他电脑上运行? [调试]【英文标题】:Why did my exe file not run in other pc? [Debug]为什么我的exe文件没有在其他电脑上运行? [调试] 【发布时间】:2014-09-16 14:38:39 【问题描述】:

我在我的电脑上用 TurboC+ 编写了一个简单的 c 程序。[windows 8 x64]。

我编译并运行它没有任何错误。但是在制作exe文件后尝试运行它。但我收到一条错误消息,提示“该应用无法在您的电脑上运行。要为您的电脑查找版本,请咨询软件发行商。”

为什么会出现这个错误?

之后,我在 Visual Studio 2008 中编写了我的简单 c 程序,并编译并运行了它。并构建exe文件。

exe 文件在我的电脑中运行。但是当我尝试在我的笔记本电脑上运行相同的 exe 文件时,它会显示 sow 错误。我用谷歌搜索了这个错误,有人写道我必须在发布模式下构建 exe。他说我可以在配置管理器中更改模式。但我在 Visual Studio 2008 中找不到任何东西。

谁能解释一下 DebugRelease 的事情!请。

我真的很困惑。

我是编程初学者。所以我对这些东西了解不多。

谢谢。

【问题讨论】:

不要使用 Turbo C++,它很古老。 Debug 包含有助于调试的附加信息以及指向未部署给一般用户的 DLL 的链接。 Release 构建 still 如果尚未安装该版本的编译器,则需要任何额外的运行时支持 (vcredist)。 C 中的“编译”是针对您机器上的确切处理器完成的。这就是为什么尝试在另一台机器上执行相同的可执行文件可能不起作用的原因。您必须为新机器重新编译它。 Windows 8 64 位 @Klas Lindbäck @crashmstr 告诉我任何其他我可以用来代替 TurboC++ 的软件 en.wikipedia.org/wiki/List_of_compilers#C_compilers 【参考方案1】:

首先,C 可执行文件依赖于平台,这意味着您无法在 x86 处理器上运行例如为 x64 编译的可执行文件。 (反过来也可以,但这是特例。)

您也无法在 Windows 等上运行为 Linux 编译的可执行文件。

问题的第二部分是您的编译器有一个标准库(VC 运行时或 libc 等),它可以与您的可执行文件静态或动态链接。如果它是动态链接的,则必须将标准库与可执行文件一起分发。

http://askleo.com/do_i_need_these_microsoft_visual_c_redistributables/

Release vs. Debug 配置可能与运行时的静态或动态链接有任何关系,也可能没有任何关系,具体取决于所使用的编译器和配置。您必须阅读编译器的手册。

【讨论】:

有没有什么简单的方法可以生成可以在其他电脑上运行的exe文件。 也许你应该看看这个问题:***.com/questions/14749662/… 我建议使用 Microsoft Visual C++ 或 Dev-C++ orwelldevcpp.blogspot.de 或 Code::Blocks codeblocks.org 或当前的 Embarcadero C++ Builder。 也就是说,如果你想写Windows软件。对于 Linux,情况不同,也有很多 Linux IDE(Anjuta、KDevelop、Geany 等),它们通常使用 GCC gcc.gnu.org 或 Clang clang.llvm.org 作为编译器 您还可以使用所谓的交叉编译器mingw-w64.sourceforge.net 从 Linux 生成 Windows 可执行文件,但这是一个相当高级的主题。

以上是关于为啥我的exe文件没有在其他电脑上运行? [调试]的主要内容,如果未能解决你的问题,请参考以下文章

为啥VB环境下调试正常,生成EXE后运行则发生错误?

为啥生成的exe文件在别人的电脑上无法运行

“mono.exe”是啥奇怪的文件,为啥会突然出现在我的电脑上?

使用 mfc 的 EXE(调试)无法在其他 PC 上运行

使用 Visual Studio 生成的 exe 在其他电脑上创建 dll 错误

为啥我的 exe 文件无法从 Visual Studio 2015 的调试或发布文件夹中打开?