undefined reference to `WinMain‘collect2.exe: error: ld returned 1 exit statusninja: build stopped

博客记录了使用CMake构建项目时出现链接错误,原因是FFmpeg开发中SDL库的main宏干扰了main函数。通过添加#undef main可解决该问题,涉及C++开发及FFmpeg库的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"D:\cLion\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" --build D:\AllCodeResp\QTResp\test04\audio\cmake-build-debug --target audio -j 12
[1/4] Automatic MOC and UIC for target audio
[2/3] Building CXX object CMakeFiles/audio.dir/Sources/main.cpp.obj
[3/3] Linking CXX executable audio.exe
FAILED: audio.exe 
cmd.exe /C "cd . && D:\MINGW\mingw64\bin\g++.exe -g  CMakeFiles/audio.dir/audio_autogen/mocs_compilation.cpp.obj CMakeFiles/audio.dir/Sources/main.cpp.obj CMakeFiles/audio.dir/Sources/mainwindow.cpp.obj -o audio.exe -Wl,--out-implib,libaudio.dll.a -Wl,--major-image-version,0,--minor-image-version,0  D:/ffmpeg/lib/avcodec.lib  D:/ffmpeg/lib/avdevice.lib  D:/ffmpeg/lib/avfilter.lib  D:/ffmpeg/lib/avformat.lib  D:/ffmpeg/lib/avutil.lib  D:/ffmpeg/lib/postproc.lib  D:/ffmpeg/lib/swscale.lib  D:/ffmpeg/lib/swresample.lib  D:/SDL2/x8664w64mingw32/lib/libSDL2.a  D:/Qt/5.14.2/mingw73_64/lib/libQt5Widgets.a  D:/Qt/5.14.2/mingw73_64/lib/libQt5Gui.a  D:/Qt/5.14.2/mingw73_64/lib/libQt5Core.a  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cmd.exe /C "cd /D D:\AllCodeResp\QTResp\test04\audio\cmake-build-debug && "D:\cLion\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" -E make_directory D:/AllCodeResp/QTResp/test04/audio/cmake-build-debug/plugins/platforms/ && cd /D D:\AllCodeResp\QTResp\test04\audio\cmake-build-debug && "D:\cLion\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" -E copy D:/Qt/5.14.2/mingw73_64/plugins/platforms/qwindows.dll D:/AllCodeResp/QTResp/test04/audio/cmake-build-debug/plugins/platforms/ && cd /D D:\AllCodeResp\QTResp\test04\audio\cmake-build-debug && "D:\cLion\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" -E copy D:/Qt/5.14.2/mingw73_64/bin/Qt5Core.dll D:/AllCodeResp/QTResp/test04/audio/cmake-build-debug && cd /D D:\AllCodeResp\QTResp\test04\audio\cmake-build-debug && "D:\cLion\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" -E copy D:/Qt/5.14.2/mingw73_64/bin/Qt5Gui.dll D:/AllCodeResp/QTResp/test04/audio/cmake-build-debug && cd /D D:\AllCodeResp\QTResp\test04\audio\cmake-build-debug && "D:\cLion\CLion 2022.2.4\bin\cmake\win\bin\cmake.exe" -E copy D:/Qt/5.14.2/mingw73_64/bin/Qt5Widgets.dll D:/AllCodeResp/QTResp/test04/audio/cmake-build-debug""
D:/MINGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o):crt0_c.c:(.text.startup+0x2e): undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

ffmepg 原因是SDL 库的main 宏干扰了main 函数 

解决:添加#undef main 就可以解决 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值