c++ - 将 C++ 游戏部署到其他 Windows 机器

标签 c++ visual-studio codeblocks

我使用以下库创建了一个 C++ 游戏:SDL2SDL2_MIXER。想把游戏送给一些没有编程经验的 friend 一起玩。现在我真的不知道该怎么做。 我尝试过的是将 installshield limited edition 与 visual studio 一起使用。把安装程序给一些 friend 后,他们都有一个共同的问题——错误是缺少一个dll MVCsomething。 向我的 friend 提供该应用程序的最简单方法是什么?既然c++都被翻译成汇编了,我每次换机器都要重新编译源码吗?

最佳答案

鉴于您标记问题的方式,目前尚不清楚您是使用 Visual Studio 还是 CodeBlocks 来编译代码。

我猜你是在 Visual Studio 中编译它,因此他们得到一个错误,说他们没有合适的 MSVCRT DLL——换句话说,你的代码所依赖的 C 运行时库,已经用微软的编译器编译。让他们下载与您在开发计算机上使用的 Visual Studio 版本相匹配的 Visual C++ Redistributable 版本。例如,如果您有 VS 2015,他们将需要安装 Visual C++ Redistributable for Visual Studio 2015 .

或者,您可以将所需的可再发行组件捆绑到您的安装程序中,以确保它能够自动安装(如果尚未安装)。在 InstallShield 中,我相信这是通过将 VC++ Redistributable 标记为“要求”来完成的。确保将其设置为先决条件。虽然,从对this question的回答来看,可能是 InstallShield LE 不支持这个。如果是这样的话,我的建议是完全放弃 InstallShield 并使用类似 Inno Setup 的东西。构建安装程序。学习曲线适中,但它是有用的知识。话虽这么说,我不敢相信微软会提供一种机制来使用不支持自动安装 CRT 的 Visual Studio 创建安装程序。关于安装向导,我没有跟上 Visual Studio 现在支持的内容。

Since c++ is translated to assembly do I have to compile the source again each time I change a machine?

不,不。假设您的 friend 都在运行 Windows(而不是 Linux)并且拥有基于 x86 的机器(如果他们运行的是 Windows,他们就会这样做),您的代码将运行良好。唯一的问题是,如果您正在编译在您的机器上运行的 64 位代码,但它们只有 32 位机器。然后你需要有 32 位和 64 位版本。 (或者一个 32 位版本,两者都可以运行。)

关于c++ - 将 C++ 游戏部署到其他 Windows 机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35394765/

相关文章:

visual-studio - 将自定义 SSIS 数据源添加到 Visual Studio 工具箱时出错

c - 一个 code::blocks 项目中的多个小程序

c++ - 在 code::blocks 中配置 MSVC 调试器

c++ - 图形库中的代码块错误

c++ - 何时使用 Malloc 而不是 New

c++ - 读取 Windows 注册表时顺序是否重要?

c++ - 不使用 For 循环将数据从指向局部数组的指针传输到全局数组

c++ - 继续没有 msvcrt.dll

c# - UWP 版本构建崩溃,但在 Visual Studio 中不会崩溃

visual-studio - 避免在 Visual Studio 中意外重建项目