从哪里开始部署 C++ 代码?

Where do one start on deploying C++ code?

我只想将我制作的一些简单的 SDL 应用程序发送给我的 non-coder 朋友。我用谷歌搜索了一下,但得到的只是更多的困惑。我真的不知道我应该做什么以及从哪里开始。

有人说我需要使用 Make/Cmake 之类的东西,有人说使用某种安装程序,如 NSIS 或 INNO Setup,有人说我只需要将所有库放在我想要的文件夹中发送给最终用户。

我在一个新的 Windows 虚拟机上尝试了最后一个,它要求提供我不知道它们是什么的奇怪 dll(libstdc++-6 和 libgcc_s_seh-1)。我安装了它们并放置了文件夹,但后来它一直要求更多。

我不知道我应该做什么。我是否需要使用其他程序,如 CMake 或 NSIS? (我在 Eclipse 上构建项目作为 C++ Managed Built)。如果不是,我应该使用什么样的构建选项?我应该在文件中添加哪些库?我想要的只是一个起点和一个我可以遵循的指南。

我在应用程序中使用的库:

stdio.h
math.h
time.h
string
SDL.h ( SDL2 )
SDL_image.h

(是的,我在文件中提供了 SDL dll,并设法在 VM 上获得空白 window 应用程序 运行。但 actaul 应用程序不起作用。)

如有任何关于标题的信息,我们将不胜感激。预先感谢。

Some said I would need to use Make/Cmake kind of stuff

那些不会改变任何东西。构建系统只是为您提供了一种调用编译器的便捷方式。

some sort of installer like NSIS or INNO Setup

您可以使用它们,但这与在存档中向您的朋友发送 .exe + .dll 没有根本区别。

I tried the last one on a fresh Windows VM, It asked for weird dlls that I don't know what they are ( libstdc++-6 & libgcc_s_seh-1 )

你好像用的是 MinGW。这些 .dll 随您的编译器一起提供,并且与 g++.exe.

位于同一目录中

它们应该被复制到您的 .exe 所在的文件夹。

it kept asking for more

它应该只要求编译器附带的一些 .dll 用于 .dll 你使用的库(SDL2.dll).


如评论中所述,复制 .dll 的替代方法是 静态链接 ,即将库直接嵌入 .exe.