c++ - 无法初始化 SDL2,但 SDL_GetError() 不返回任何内容
问题描述
我只是想启动一个简单的 SDL2 示例。编译是可以的,但是在执行时,在这段代码中:
bool init(){
if(SDL_Init(SDL_INIT_EVERYTHING) != 0){
std::cout << "SDL init error: " << SDL_GetError() << std::endl;
return false;
}
return true;
}
我SDL init error:
没有从 SDL_GetError() 得到任何输出。你能告诉我,有什么问题吗?
IDE:Eclipse,操作系统:Ubuntu。
更新:
显示的代码段包含一个最小的可重现示例。但是如果你坚持,那么这段代码会给出同样的错误:
int main(){
if(SDL_Init(SDL_INIT_EVERYTHING) != 0){
std::cout << "SDL init error: " << SDL_GetError() << std::endl;
return false;
}
}
更新 2:
如果我添加更多代码:
int main(){
if(SDL_Init(SDL_INIT_EVERYTHING) != 0){
std::cout << "SDL init error: " << SDL_GetError() << " |" << std::endl;
// return false;
}
SDL_Window* window = SDL_CreateWindow("Hello World", 200, 200, 460, 200, SDL_WINDOW_SHOWN);
if(window == nullptr){
std::cout << "SDL create window error: " << SDL_GetError() << std::endl;
// return false;
}
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if(renderer == nullptr){
std::cout << "SDL create renderer error: " << SDL_GetError() << std::endl;
// return false;
}
如果我向项目添加更多代码,我会得到同样的错误。也就是说,在第一次检查初始化期间。进一步执行没有错误,创建一个窗口和一个渲染器。但是渲染器不能绘制任何东西,窗口总是黑色的并且不执行任何绘制命令:
SDL_SetRenderDrawColor(renderer, 0xFF, 0xAA, 0xFF, 0xFF);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
SDL_Rect actor1 = {10, 10, 550, 50};
SDL_RenderFillRect(renderer, &actor1);
解决方案
推荐阅读
- netlogo - 如何在 Netlogo 中链接不同代理集的海龟
- javascript - Adobe Acrobat 在新的 doc.txt 中插入文本
- pip - 在 pip3 requirements.txt 中指定 -f 选项
- java-8 - 从对象列表中获取最后一个非空对象
- r - 如何将数字矩阵转换为 R 中的张量流数据集?
- github - GitHub 代码永久链接不粘贴行
- vba - 释放 PST 文件的文件锁定
- javascript - JavaScript 自动设置 Date 对象的时区
- javascript - 如何通过提供的主按钮一键显示/隐藏所有屏幕?
- wordpress - Learndash 设置缺失的注册日期等于课程完成日期