我创建了一个包含以下库的c ++游戏:SDL2
和SDL2_MIXER
。我想把游戏给一些没有编程经验的朋友。现在我真的不知道该怎么做。
我试过的是在visual studio中使用installshield限量版。在给一些朋友提供安装程序之后,他们都有一个常见的问题 - 错误,因为缺少了一些虚拟机MVs。
给朋友们提供应用程序的最简单方法是什么?由于c ++被转换为汇编,我每次更换机器时都必须再次编译源代码吗?
答案 0 :(得分:0)
鉴于您标记问题的方式,目前还不清楚您是否使用Visual Studio或CodeBlocks来编译代码。
我猜你是在Visual Studio中编译它,因此他们得到一个错误,他们没有相应的MSVCRT DLL - 换句话说,你的代码所依赖的C运行时库,已经被使用Microsoft的编译器编译。指出它们下载与您在开发计算机上使用的Visual Studio版本匹配的Visual C ++ Redistributable版本。例如,如果你有VS 2015,他们需要安装Visual C++ Redistributable for Visual Studio 2015。
或者,您可以将所需的可再发行组件捆绑到安装程序中,以确保它自动安装(如果尚未安装)。在InstallShield中,我认为通过将VC ++ Redistributable标记为“需求”来完成。确保将其设置为先决条件。虽然从this question的答案来看,可能是InstallShield LE不支持这一点。如果是这种情况,我的建议是完全抛弃InstallShield并使用Inno Setup之类的东西来构建安装程序。有一个适度的学习曲线,但它是有用的知识。话虽这么说,我不敢相信微软会提供一种机制,用Visual Studio创建一个不支持自动安装CRT的安装程序。关于设置向导,我还没有跟上Visual Studio现在支持的内容。
由于c ++被转换为汇编,我每次更换机器时都必须再次编译源吗?
不,不。假设您的朋友都在运行Windows(而不是Linux),并且拥有基于x86的计算机(如果他们运行的是Windows,他们会这样做),您的代码将正常运行。唯一的问题是,如果您正在编译在您的计算机上运行的64位代码,但它们只有32位计算机。那么你需要有一个32位和64位版本。 (或者是一个32位版本,它将在两者上运行。)