简单的方式编译简单的windows二进制文件

Easies way of compiling simple windows binary

本文关键字:简单 二进制文件 windows 方式 编译      更新时间:2023-10-16

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

我正在寻找最简单的方法来创建一个exe二进制文件,其中包含一些C/c++(或任何其他)代码,不依赖于每个Windows系统上不可用的任何dll。所以没有cygwin dll,没有。net可分发版,从XP到Windows 10工作。文件大小应该尽可能小。

谢谢。

如果我正确理解问题,您不太关心文件大小,但不依赖于第三方dll ?然后,您总是可以静态地链接库(当然,您需要将它们作为命名为lib的归档文件)。)。例如,我在使用pdcurses库的windows游戏构建中使用了以下内容:

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

这只是我的Makefile在编译windows时在链接阶段添加到gcc的标志。

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

-Wlgcc传递一个选项给链接器(ld)。-Bstatic告诉链接器以下库应该是静态链接的。我在这里切换回动态链接因为winmm.dll是一个windows系统dll

您需要Win32 API(无MFC)。例如,您可以使用Visual c++ Express。重要的是启用"多线程"运行时库(没有DLL)。这是在c++/代码生成设置中。使用较旧的编译器,如VC 6或Borland c++ 5,您的exe将在Windows 95及以上的所有Windows上正常运行。