首页 > 解决方案 > GCC - 编译 C 未定义的对“wWinMain”的引用

问题描述

我正在尝试在命令提示符下使用 gcc 编译 C,但我收到了对“wWinMain”错误的未定义引用。

我首先得到了对“WinMain”的未定义引用,但我通过添加参数解决了这个问题:

-municode

现在 `wWinMain' 未定义。如何解决这个问题?

C:\Development\WA\Library\Backend\C\CB\CB>gcc CB.c -lssl -lcrypto -municode
C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 
C:/Strawberry/c/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_w.o):crt0_w.c:(.text+0x21): undefined reference to `wWinMain'
collect2.exe: error: ld returned 1 exit status

标签: cgccwinmain

解决方案


gcc CB.c -lssl -lcrypto将编译和链接一个应用程序,它在 Windows 上默认为一个窗口应用程序,其入口点是WinMain(您的库显然没有也不需要)。

添加-municodejust 指示系统使用 windows unicode API,然后入口点变为wWinMain,您仍然遇到同样的问题。

要构建 DLL,请添加-sharedgcc CB.c -shared -lssl -lcrypto


推荐阅读