首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >某些SDL函数未被gcc识别

某些SDL函数未被gcc识别
EN

Stack Overflow用户
提问于 2019-04-06 03:32:45
回答 2查看 228关注 0票数 0

我正在学习使用SDL,不幸的是,我不明白为什么linux上的gcc误解了我的代码,并用其他函数解释了它,然后给了我这些编译错误。我不知道这是从哪里来的。

disco.c:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <SDL/SDL.h>

void SDLdebugError();

int main(int argc, char const *argv[]) {

  SDL_Init(SDL_INIT_VIDEO);

  SDL_Window SDL_CreateWindow("Chicken Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
  if(window == NULL) { SDLdebugError("Window Error"); };

  SDL_Quit();
  return EXIT_SUCCESS;
}

void SDLdebugError(char *message) {
  printf("%s, %s\n", message, SDL_GetError());
  exit(EXIT_FAILURE);
}

编译:

代码语言:javascript
复制
disco.c: In function ‘main’:
disco.c:12:3: error: unknown type name ‘SDL_Window’; did you mean ‘SDL_cond’?
   SDL_Window SDL_CreateWindow("Chicken Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
   ^~~~~~~~~~
   SDL_cond
disco.c:12:31: error: expected declaration specifiers or ‘...’ before string constant
   SDL_Window SDL_CreateWindow("Chicken Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
                               ^~~~~~~~~~~~~~~
disco.c:12:48: error: unknown type name ‘SDL_WINDOWPOS_CENTERED’; did you mean ‘SDL_HAT_CENTERED’?
   SDL_Window SDL_CreateWindow("Chicken Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
                                                ^~~~~~~~~~~~~~~~~~~~~~
                                                SDL_HAT_CENTERED
disco.c:12:72: error: unknown type name ‘SDL_WINDOWPOS_CENTERED’; did you mean ‘SDL_HAT_CENTERED’?
 DL_Window SDL_CreateWindow("Chicken Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
                                                                     ^~~~~~~~~~~~~~~~~~~~~~
                                                                     SDL_HAT_CENTERED
disco.c:12:96: error: expected declaration specifiers or ‘...’ before numeric constant
 ow("Chicken Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
                                                                     ^~~

disco.c:12:101: error: expected declaration specifiers or ‘...’ before numeric constant
 hicken Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
                                                                     ^~~

disco.c:12:106: error: unknown type name ‘SET_WINDOW_OPENGL’; did you mean ‘SDL_VIDEO_OPENGL’?
 n Disco", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 800, 600, SET_WINDOW_OPENGL);
                                                                     ^~~~~~~~~~~~~~~~~
                                                                     SDL_VIDEO_OPENGL
disco.c:13:6: error: ‘window’ undeclared (first use in this function); did you mean ‘rindex’?
   if(window == NULL) { SDLdebugError("Window Error"); };
      ^~~~~~
      rindex
EN

回答 2

Stack Overflow用户

发布于 2019-04-06 03:46:31

您尚未声明window变量。这应该会解决你所有的问题。

票数 0
EN

Stack Overflow用户

发布于 2019-04-06 20:56:10

感谢大家的回答。最后,genpfault是正确的,我通过apt重新安装了libsdl2-dev并替换了

代码语言:javascript
复制
#include <SDL/SDL.h> 

通过

代码语言:javascript
复制
#include <SDL2/SDL.h> 

并使用:gcc disco.c ``sdl2-config --cflags --libs`` -o disco编译

我还声明了窗口变量:d (Jordan Motta)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55542245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档