我今天开始使用 SDL,之前遇到了一些问题,现在我可以运行它,但它不允许我初始化它。
这是我的代码:
#include <iostream>
#include "SDL.h"
#undef main
using namespace std;
int main(){
if(SDL_Init(SDL_INIT_EVERYTHING)<0){
cout << "error starting sdl" << endl;
}
return 0;
}
这是构建日志:
-------------- Build: Debug in Graphics (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -g -std=c++11 -IC:\Users\73638G75MA\Documents\SDL2-2.0.3\x86_64-w64-mingw32\include\SDL2 -I"C:\Users\73638G75MA\Documents\C++ projects\Graphics" -c "C:\Users\73638G75MA\Documents\C++ projects\Graphics\main.cpp" -o obj\Debug\main.o
mingw32-g++.exe -LC:\Users\73638G75MA\Documents\SDL2-2.0.3\x86_64-w64-mingw32\lib -o bin\Debug\Graphics.exe obj\Debug\main.o -lmingw32 -lSDL2main -lSDL2
obj\Debug\main.o: In function `main':
C:/Users/73638G75MA/Documents/C++ projects/Graphics/main.cpp:8: undefined reference to `SDL_Init'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
1 error(s), 0 warning(s) (0 minute(s), 0 second(s))
我将感谢所有可能的帮助,一开始的 #undef main 是因为它不会让我运行它。如果它不存在,当我创建控制台应用程序时,它会给我一个“对 winmain@16 的未定义引用”。
根据include和library搜索路径...\SDL2-2.0.3\x86_64-w64-mingw32\...
,您正在尝试使用 64 位 SDL2 进行构建。 从编译器名称来看mingw32-g++
,我想说你正在使用 mingw.org 工具链 根据代码::块下载页面我检查了 codeblocks-13.12mingw-setup.exe 的内容,其中包含的工具链仅为 32 位,无法创建 64 位二进制文件,也无法使用 64 位库。
如果您想使用预构建的 SDL2,则需要下载匹配的工具链(64 位 mingw-w64)并使用它,或者更改构建参数以使用 SDL2 的 32 位构建(它存在于开发库档案 in the i686-w64-mingw32
目录)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)