gcc 愚者-正在编译对'wWinMain'未定义引用

wf82jlnq  于 2022-12-13  发布在  其他
关注(0)|答案(2)|浏览(203)

我试图在命令提示符下用gcc编译C,但是我得到了这个未定义的引用'wWinMain'错误。
我首先得到了对'WinMain'的未定义引用,但我通过添加参数修复了这个问题:

  • 市政代码
    现在'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
x8diyxa7

x8diyxa71#

gcc CB.c -lssl -lcrypto将编译并链接一个 * 应用程序 *,在Windows上默认为一个窗口化应用程序,其入口点是WinMain(您的库显然没有也不需要)。
添加-municode只是指示系统使用windows unicode API,然后入口点变为wWinMain,您仍然遇到相同的问题。
若要建置DLL,请加入-sharedgcc CB.c -shared -lssl -lcrypto

vltsax25

vltsax252#

你没有提供你的任何代码。而我遇到的问题与此类似,所以我将描述我的经验。
我在试用Dear ImGui库,当我添加-municode选项时,链接器也抱怨了同样的问题。我做了一些搜索,找到了an answer to a similar question和另一个讨论相关问题的评论,他们都建议将“main”改为“wmain”。我这样做了,并且构建能够成功。但是我没有足够的知识来提供关于问题来源的任何更深层次的信息。

相关问题