使用 Dev C++ 时未定义对 'SDL_main' 的引用
Undefined reference to 'SDL_main' while using Dev C++
我目前在使用 SDL 库的 dev c++ 中编译我的项目时遇到问题,我所做的是首先从这个 site 下载文件 SDL2-devel-2.0.3-mingw.tar.gz
(MinGW 32/64 位),然后在
工具 -> 编译器选项,然后在“Directories
”部分,我在“libraries
”选项卡中包含 x86_64-w64-mingw32/lib
,在“[=18=”选项卡中包含 x86_64-w64-mingw32/include
]' 选项卡后,我将下载的文件夹解压缩到 C 盘中。
最后,我在项目选项中添加了这些链接器
-lmingw32 -lSDL2main -lSDL2
但是在编译这段代码之后:
#include<stdio.h>
#include<SDL2/SDL.h>
int main(int argc, const char* argv[]) {
printf("hi\n");
return 0;
}
编辑:
我尝试在 char*
之前删除 const,它说 sdl.dll
丢失了,所以我从互联网上下载了上述文件并将其粘贴到项目所在的位置,所以程序终于编译好了,但我我没有得到任何输出,因为它应该打印 "Hi"
我在 Function console_main
和 undefined reference to sdl_main
中遇到错误,谁能帮我解决这个问题。
这个错误在使用 int main()
而不是 :
时很常见
int main(int argc, char **argv)
//or
int main(int argc, char *argv[])
尝试用其中任何一个替换它。
在后台,SDL 定义了一个宏 #define main SDL_main
来重命名您的 main(int argc, char *argv[])
函数,这样它就不会与它自己的 main()
函数(用于 SDL 初始化)发生冲突。如果您改用 main()
,则宏不会对其进行修改,因此找不到 SDL_main
。
如果不起作用,请按照下列步骤操作:
创建项目时,请确保选择 Win32 GUI
或 Win32 Console
应用程序类型。
创建项目后,我假设您在链接器下的项目参数中添加了以下命令行:-lmingw32 - -lSD2main -lSDL2
然后将 SDL2.dll
放入您的可执行文件所在的项目目录中。
在您的源代码中 main(int argc, char **argv)
开始之前包含 SDL2.h
。
我目前在使用 SDL 库的 dev c++ 中编译我的项目时遇到问题,我所做的是首先从这个 site 下载文件 SDL2-devel-2.0.3-mingw.tar.gz
(MinGW 32/64 位),然后在
工具 -> 编译器选项,然后在“Directories
”部分,我在“libraries
”选项卡中包含 x86_64-w64-mingw32/lib
,在“[=18=”选项卡中包含 x86_64-w64-mingw32/include
]' 选项卡后,我将下载的文件夹解压缩到 C 盘中。
最后,我在项目选项中添加了这些链接器
-lmingw32 -lSDL2main -lSDL2
但是在编译这段代码之后:
#include<stdio.h>
#include<SDL2/SDL.h>
int main(int argc, const char* argv[]) {
printf("hi\n");
return 0;
}
编辑:
我尝试在 char*
之前删除 const,它说 sdl.dll
丢失了,所以我从互联网上下载了上述文件并将其粘贴到项目所在的位置,所以程序终于编译好了,但我我没有得到任何输出,因为它应该打印 "Hi"
我在 Function console_main
和 undefined reference to sdl_main
中遇到错误,谁能帮我解决这个问题。
这个错误在使用 int main()
而不是 :
int main(int argc, char **argv)
//or
int main(int argc, char *argv[])
尝试用其中任何一个替换它。
在后台,SDL 定义了一个宏 #define main SDL_main
来重命名您的 main(int argc, char *argv[])
函数,这样它就不会与它自己的 main()
函数(用于 SDL 初始化)发生冲突。如果您改用 main()
,则宏不会对其进行修改,因此找不到 SDL_main
。
如果不起作用,请按照下列步骤操作:
创建项目时,请确保选择
Win32 GUI
或Win32 Console
应用程序类型。创建项目后,我假设您在链接器下的项目参数中添加了以下命令行:
-lmingw32 - -lSD2main -lSDL2
然后将
SDL2.dll
放入您的可执行文件所在的项目目录中。在您的源代码中
main(int argc, char **argv)
开始之前包含SDL2.h
。