在OSX上安装SDL

时间:2015-10-19 23:27:01

标签: c++ c macos gcc sdl

我下载了SDL2-2.0.3。我跑了./configure && make && make install

我也试过brew install SDL2

这是我的主要文件。

//Using SDL and standard IO
#include <SDL2/SDL.h>
#include <stdio.h>
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main( int argc, char* args[] ) {
 SDL_Window* window = NULL;
 SDL_Surface* screenSurface = NULL;

 if (SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
   printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
 }
}

我跑的时候

~:.make main
gcc     main.c   -o main
Undefined symbols for architecture x86_64:
  "_SDL_GetError", referenced from:
      _main in main-d5699d.o
  "_SDL_Init", referenced from:
      _main in main-d5699d.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [main] Error 1
~:.

如何安装?

4 个答案:

答案 0 :(得分:2)

以下命令与SDL一起安装,它会告诉您正确的编译和链接开关:

g++ main.cpp -o main $(sdl2-config --cflags --libs)

在我的特定机器上,它给出了:

main:   main.cpp
        g++ main.cpp -o main $$(sdl2-config --cflags --libs)

这意味着您可以像这样编译和链接,并始终确保获得正确的设置:

new tableau.Viz(placeholderDiv, url, options);

或者,您可以将它放在这样的Makefile中(在第二行的开头有一个TAB):

placeholderDiv

答案 1 :(得分:1)

您未能与libSDL2.{a,dylib}建立链接。

你想:

gcc -o main main.c -lSDL2

或者也许:

gcc -o main main.c -L/usr/local/lib -lSDL2

答案 2 :(得分:1)

你需要运行

  • sdl2-config --cflags将为您提供编译标志和
  • sdl2-config --libs将为您提供链接器标志

需要使用SDL2。

标志因平台而异,这就是为什么你应该使用sdl2-config而不是将一些特定标志硬编码到Makefile或其他构建脚本中的原因。

答案 3 :(得分:0)

确保下载 x64 SDL2版本。您还需要将其与-lSDL2标志静态链接。