是否在任何 Windows 上使用 CodeBlocks + GCC 运行 构建可执行文件?

Do executables built with CodeBlocks + GCC run on any Windows?

在使用 Visual C++ 构建时,我注意到可以将一个简单的可执行文件 helloworld.exe(显示 WinAPI MessageBox)发送到任何使用 Windows XP、Vista、7、 8、10 和 运行 没有任何第三方 dll 或可再分发的软件包。

现在我要转向 CodeBlocks + GCC,是否也是如此?即 显示 WinAPI MessageBox 的简单可执行文件是否能够 运行 在所有 Win XP、Vista、7、8、10 上 而无需任何其他软件包,具体到海湾合作委员会?

与所有程序(包括使用 VS 构建的程序)一样,保证程序能够跨所有 Windows 版本运行并非易事。但是,是的,您通常可以使用 GCC 编写控制台应用程序,无需任何第三方 DLL - 我自己的 CSVfix application certainly does. And you can certainly use GCC to display a message box without such things. I would recommend using TDM GCC,其中一个版本附带 Code::Blocks 包之一,作为最做这种事情的直接方法。

我之前使用的一种确保一切都正确 linked 的方法是通过在编译时传递 -static 标志来静态 link 。 在 g++ 中会是这样的:g++ hello.cpp -o hello.exe -static。 那应该照顾它。这样你只需要没有 libstdc++6.dll 的二进制文件。因此,如果您可以在 code::blocks 中传递 linker 标志,那就去做吧。

我尝试了更多,用 Code::blocks / GCC / MinGW 制作的 .exe 是否需要外部文件:libstdc++-6.dll.

可能有一种方法可以使用静态链接的可执行文件来消除这种依赖性,as stated here,但那里的一些评论表明它并不像看起来那么容易。