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

时间:2017-07-08 22:30:21

标签: c++ windows gcc mingw codeblocks

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

既然我正在转向CodeBlocks + GCC,那么同样如此吗?即将显示一个简单的可执行文件,显示WinAPI MessageBox能够在所有Win XP,Vista,7,8,10 上运行,而不需要任何其他需要的程序包,特定于GCC吗?

3 个答案:

答案 0 :(得分:2)

与所有程序一样,包括那些使用VS构建的程序,保证程序将适用于所有这些Windows版本并非易事。但是,是的,您通常可以使用GCC编写控制台应用程序,它们可以在没有任何第三方DLL的情况下使用它们 - 我自己的CSVfix应用程序当然可以。你当然可以使用GCC来显示没有这些东西的消息框。我建议使用TDM GCC,其中一个版本附带一个Code :: Blocks包,作为执行此类操作的最直接方式。

答案 1 :(得分:0)

我之前用过的方法是确保所有内容都正确链接,通过在编译时传递-static标志来静态链接。 在g ++中,就像这样:g++ hello.cpp -o hello.exe -static。 那应该照顾它。这样,您只需要没有libstdc++6.dll的二进制文件。因此,如果您可以在代码:: blocks中传递链接器标志,请执行此操作。

答案 2 :(得分:-1)

我尝试了一下,使用Code :: blocks / GCC / MinGW 制作的.exe 需要一个外部文件:libstdc++-6.dll

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