我一直在Qt创建器中得到"Undefined reference to WinMain@16"
I keep getting "Undefined reference to WinMain@16" in Qt Creator
我试图在Qt Creator 3.1中使用SDL 2.0,在Windows 7中使用Qt构建套件(QBS)。
我已经把链接放在我的。qbs中以定位SDL文件夹,我认为一切正常,因为在我的main.cpp中它识别SDL功能,试图自动完成它们。
问题是,每当我试图编译,我得到'未定义的引用WinMain@16'
我使用MinGW,并在编译器首选项中设置链接器标志为:-lmingw32 -lSDL2main -lSDL2 -mwindows
输出为:
c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/lib/libmingw32.a(main.o): In function `main':
e:pgiawsrcpkgmingwrt-4.0.3-1-mingw32-srcbld/../mingwrt-4.0.3-1-mingw32-src/src/libcrt/crt/main.c:91: undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
和我的。qbs是:
import qbs 1.0
CppApplication {
name: "testeSDL2"
cpp.includePaths: [".",
"C:/SDL2-2.0.3/i686-w64-mingw32/include"]
cpp.libraryPaths: [
"C:/SDL2-2.0.3/i686-w64-mingw32/lib"]
cpp.dynamicLibraries: "SDL2"
files: [
"main.cpp"
]
qbsSearchPaths: "C:/CppLibs/"
}
我一直在搜索很多,只找到使用。pro而不是。qbs的常见Qt项目的答案…SDL网站中有一节说这是一个链接器问题,但我在偏好窗口中设置了它们,我猜我还需要在。qbs文件中设置它们,但我不知道怎么做。有人能帮忙吗?
我记得,SDL定义了一个宏main
,它扩展为一些SDL特定的函数名。
找到宏的定义,你也可以找到你需要禁用的宏符号。
哦,好吧,也许这应该是一个评论,而不是一个答案,但是当/如果你发现(对不起,我没有时间检查这些来源),那么你可以标记为“解决方案”: -)
附录:自从OP好心地发布了SDL代码,我看了它,发现了这个评论:
如果您提供自己的WinMain()
,您可以定义SDL_MAIN_HANDLED
”
白马王子;
则未定义名为main
的宏
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- Visual Studio Code "undefined reference to `WinMain@16'"
- 使用 MATLAB 编码器生成C++代码:编译错误"undefined reference to `rgb2gray_tbb_real64'"
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- Tensorflow c++ api undefined reference to 'tflite::D efaultErrorReporter()'
- 为什么在使用 SDL2 时仍然收到'undefined reference'链接器错误?
- OpenCV undefined reference to 'cv::imread(cv::String const&, int)'
- Libcurl c++ "undefined reference to" (Windows/MinGW/g++)
- 尝试使用 extern "C" 调用 C 中的C++方法,得到"undefined reference to"对象的链接器错误
- build error : undefined reference to `yyFlexLexer::yyFlexLex
- 安卓 NDK 制造。数百"undefined reference error"
- 当我尝试进行TPC-E测试时,实用程序抱怨"undefined reference"
- 声明和定义函数静态会产生"undefined reference to function_name()"
- C++ : "undefined reference to"可能是因为CMake文件
- 包含<iostream>时"Undefined reference"错误
- CMake 'undefined reference' CERN-ROOT 的错误
- 生成错误:"cannot find target for file"和"undefined reference"
- AppData\Local\Temp\cc59LXDc.o:test1.cpp: undefined reference to 'constructNewObjectOfClass
- YAML-cpp 编译错误:"undefined reference to YAML::LoadFile"
- 添加 cpp11 插件时出现错误消息"Undefined reference to boost (...)"