c - 在另一台 PC 上运行 C Built .exe

标签 c exe release

我使用标准 C 库和几个 Windows 库在 Visual Studio 中用 C 语言构建了一个程序。

代码只是获取用户输入(使用 scanf,因此通过 cmd 窗口)根据输入进行一些计算并输出一些文本文件,仅此而已。

我想知道我需要做什么才能在另一台标准 Windows 计算机上运行我的 exe 而无需安装任何其他文件,例如整个 Windows SDK。?

这只是能够构建发布版本(而不是调试)的情况吗?

非常感谢

最佳答案

如果您选择了正确的 CPU 目标(项目配置属性 -> C/C++:启用增强指令集),这样二进制文件代码不包含只有极少数 CPU 可以理解的指令,而 Visual Studio 的默认设置是使用最广泛的 x86 或 x64 CPU 支持的指令,那么您的程序几乎可以在任何 Windows 计算机上运行。不过,您需要分发不属于基本 Windows 安装的任何 DLL,其中包括任何其他动态链接的语言运行时,例如 Visual C++ 运行时。

获取必须与可执行文件一起打包的 DLL 列表的一个好方法是创建一个虚拟机,其中安装了全新的 Windows,其中没有任何开发工具,然后尝试在其中运行代码。如果您收到缺少 DLL 的错误,请添加它并重复。对于 Visual C++ 运行时,Microsoft 为不同版本提供了可安装包,您可以将这些包作为安装的一部分进行分发(Visual C++ Whatever Redistributable Package)。

另外,请注意,为 32 位 Windows 编译的程序大部分都可以在 64 位版本上运行,但反之则不然。

关于c - 在另一台 PC 上运行 C Built .exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61229474/

相关文章:

带有谷歌地图的Android应用程序,在 Release模式下工作,但上传到市场时不工作

c# - DLL 包含在 exe.file 中?

python - 如何构建 matplotlib、tkinter 后端、与 cx-freeze 一起使用的 GUI?

python - PyInstaller 创建的独立可执行文件无法导入 Numpy

visual-studio-2010 - 无法启动程序 'http://localhost/Default.aspx' 。 VS2010

objective-c - 如何释放静态 Objective-C 变量

c - 为什么 strlen 的 REPNE SCASB 实现有效?

c++ - 添加和删​​除最后一位

c - 为什么二维数组用于堆栈?为什么不能将一维数组用于堆栈?

c - 为什么可以这样在struct中声明一个数组,又该如何使用呢?