sdl库使用时遇到的问题

1. Undefined symbols for architecture x86_64 “_main”

问题

在使用sdl库的时遇到如下问题:


Undefined symbols for architecture x86_64:
"_main", referenced from:
__start in crt1.o
(maybe you meant: _SDL_main)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

原因

查看sdl.h后发现有如下定义:

#define main    SDL_main

解决办法

在代码的main函数之前添加#undef main。

在Dev-C++ 5.11中配置SDL(Simple DirectMedia Layer),你需要进行以下步骤: 1. **下载和解压SDL**: - 访问SDL官网 (https://www.libsdl.org/) 下载适用于Windows的源码包,通常选择最新稳定版本。 2. **配置环境**: - 创建一个新的Dev-C++工程前,确保已安装MinGW(Dev-C++自带),因为SDL需要其编译工具链。 3. **设置路径**: - 打开Dev-C++的项目属性(Project > Properties),在"Settings"选项卡下的"Directories"部分,添加`include`目录(通常是解压后的SDL包的include文件夹),以便找到SDL头文件。 - 添加同样路径到"C Compiler"和"Linker settings"下的"Additional Library Directories"项,以便查找lib目录中的文件。 4. **链接文件**: - 在"Linker settings"中,点击"+"号添加新的项,输入`mingw32.lib`和`SDLmain.lib`(如果你使用的是SDL2,则可能是`SDL2main.lib`),这两个是基本的SDL。 5. **添加头文件**: - 在项目的源代码中包含`SDL.h`或其他必要的头文件,开始编写使用SDL的程序。 6. **编译和运行**: - 确保所有配置都正确无误后,尝试编译并运行你的程序,如果一切顺利,你应该能看到SDL的功能运行起来。 请注意,由于Dev-C++在近年来已经较少更新,有些新版本的SDL可能需要额外的手动步骤或第三方工具才能完全适配。如果遇到问题,可以考虑升级到更现代化的IDE,如Code::Blocks或者直接使用VS Code等,它们有更好的兼容性和社区支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值