在MAC上编译SDL
#include "ffmpeg/libavcodec/avcodec.h" #include "ffmpeg/libavformat/avformat.h" #include "ffmpeg/libswscale/swscale.h" #include "ffmpeg/libswscale/rgb2rgb.h" #include "ffmpeg/libswscale/swscale_internal.h" #include #ifdef __MINGW32__ #undef main /* Prevents SDL from overriding main() */ #endif #include "SDL.framework/Headers/SDL.h" #include "SDL.framework/Headers/SDL_thread.h"
是用这个命令编译的:
gcc -o t1 tutorial01.c -lswscale -lavutil -lavformat -lavcodec -lz -lavutil -lm -framework SDL
但我得到这个错误:
Undefined symbols: "_main", referenced from: start in crt1.10.6.o (maybe you meant: _SDL_main) ld: symbol(s) not found collect2: ld returned 1 exit status
从谷歌搜索,如果我尝试添加:#include“SDLMain.h”它有主要的动脉瘤。
将编译行更改为:
gcc -o t1 tutorial01.c -lswscale -lavutil -lavformat -lavcodec -lz -lavutil -lm `sdl-config --cflags --libs`
在我的mbp上, sdl-config --cflags --libs
输出:
-I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE -L/usr/local/lib -lSDLmain -lSDL -Wl,-framework,Cocoa