我使用以下库创建了一个 C++ 游戏:SDL2
和 SDL2_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/