【发布时间】:2021-06-08 11:28:11
【问题描述】:
我正在尝试在命令提示符下使用 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
【问题讨论】:
-
当然,您可以通过删除
-municode轻松修复该问题(抱歉,无法抗拒)。那么那个C的入口点是什么?如果它没有WinMain,它有什么,main?还是一个没有入口的库? -
@dratenik 是的,它是一个图书馆。正如我所写,如果我删除 -municode,我会得到对 WinMain 的未定义引用。如果我添加它,我会得到对 `wWinMain' 的未定义引用。
-
您期望得到什么?没有参数,您要求创建一个
.exe文件。如果你想要一个.o目标文件,那么你需要添加-c,如果你想要一个.dll,我完全不知道,但我相信你可以找到正确的选项在某处使用。