c++ - 在带有 g++ 的 Linux 上使用 SDL2?

标签 c++ linux g++ sdl sdl-2

   #include "SDL2/SDL.h"


   int main(int argc, char* args[])
   {
       SDL_Init(SDL_INIT_EVERYTHING);

       SDL_QUIT();
       return 0;
  }

我已经通过 debian 存储库安装了 SDL2,并且正在运行

g++ -o test.cpp a.out -lSDL2 

我遇到了很多错误:

a.out:(.rodata+0x0): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o:(.rodata.cst4+0x0): first defined here
a.out: In function `data_start':
(.data+0x8): multiple definition of `__dso_handle'
/usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o:(.data+0x0): first defined here
a.out: In function `_fini':
(.fini+0x0): multiple definition of `_fini'
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o:(.fini+0x0): first defined here
a.out: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o:(.text+0x0): first defined here
a.out: In function `_init':
(.init+0x0): multiple definition of `_init'
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o:(.init+0x0): first defined here
a.out: In function `data_start':
(.data+0x0): multiple definition of `__data_start'
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o:(.data+0x0): first defined here
/usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o:(.tm_clone_table+0x0): multiple definition of `__TMC_END__'
a.out:(.data+0x10): first defined here
/usr/bin/ld: error in a.out(.eh_frame); no .eh_frame_hdr table will be created.
collect2: error: ld returned 1 exit status

我试过了

g++ test.cpp $(pkg-config --cflags --libs sdl2)

并得到:

test.cpp: In function ‘int main(int, char**)’:
test.cpp:6:14: error: ‘(SDL_EventType)256u’ cannot be used as a function

我不知道是什么导致了这些错误。 正确的头文件存在于

/usr/include/SDL2/

目录。我做错了什么吗?

最佳答案

标题必须是:<SDL2/SDL.h>
退出函数:SDL_Quit();
命令:g++ teste.cpp -o filename -lSDL2

关于c++ - 在带有 g++ 的 Linux 上使用 SDL2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231344/

相关文章:

c++ - 如何初始化静态类的疙瘩成语的d(指针)?

c++ - fftw 中的 convfft() 调用导致崩溃。是关于不正确的库链接吗?

c++ - C++/Linux 中的系统范围全局变量/信号量/互斥锁?

Linux 3.x 内核书籍

GCC代码统计/分析

c++ - g++4.8 处理 vector future 的问题

c++ - "else if"是单个关键字吗?

c++ - 在 std::pair 中使用 `std::make_pair`:C++ STL

c++ - 跳过代码不使用状态变量,设想使用goto

linux bash 不显示作业消息