简单的编译简单窗口二进制文件的方法

时间:2015-08-02 17:19:08

标签: c++ c

因为我第三次失败了,也许你们中的某个人可以回答我这个(简单?)的问题。

我正在寻找创建包含几行C / C ++(或其他任何)代码的exe二进制文件的最简单方法,并且不依赖于每个Windows系统上都没有的任何dll。所以没有cygwin dll,没有.NET Redistributables,并且从XP-> Windows 10工作。文件大小应该尽可能小。

感谢。

2 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,你不关心文件大小,但不关心第三方DLL?然后,您可以始终静态链接库(当然,您需要将它们作为名为 lib< name> .a 的存档)。例如,我使用 pdcurses 库为我的游戏Windows构建使用以下内容:

csnake_win32_LDFLAGS:= -static-libgcc -Wl,-Bstatic -lpdcurses \
    -Wl,-Bdynamic -lwinmm

在编译windows时,我的Makefile刚刚将这个标志添加到链接阶段的gcc标志中。

-static-libgcc可能是最重要的,因为 libgcc (几乎)总是需要并自动链接...而默认是动态链接它。

-Wl将选项从gcc传递给链接器(ld)。 -Bstatic告诉链接器以下库应该是静态链接的。我正在切换回动态链接,因为winmm.dll是一个Windows系统DLL。

答案 1 :(得分:1)

您需要Win32 API(无MFC)。例如,您可以使用Visual C ++ Express。重要的是启用"多线程"用于运行时库(不含DLL)。这是在C ++ /代码生成设置中。使用像VC 6或Borland C ++ 5这样的旧编译器,您的exe将在Windows 95及更高版本的所有Windows上运行时没有问题。