2010-10-26 3 views
2
#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 <stdio.h> 

#ifdef __MINGW32__ 
#undef main /* Prevents SDL from overriding main() */ 
#endif 

#include "SDL.framework/Headers/SDL.h" 
#include "SDL.framework/Headers/SDL_thread.h" 

est compilé avec cette commande:SDL sur une compilation MAC

gcc -o t1 tutorial01.c -lswscale -lavutil -lavformat -lavcodec -lz -lavutil -lm -framework SDL 

Mais je reçois cette erreur:

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 

De googler, Si j'essaie d'ajouter: #include « SDLMain .h "il a des anévrismes majeurs.

+0

Cette question est résolue dans XCode la question/réponse suivante: http://stackoverflow.com/questions/7071971/simply-including-sdl-header-causes-linker-error – bentford

Répondre

5

Changez votre ligne de compilation:

gcc -o t1 tutorial01.c -lswscale -lavutil -lavformat -lavcodec -lz -lavutil -lm `sdl-config --cflags --libs` 

Sur mon mbp, sdl-config --cflags --libs sorties:

-I/usr/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE 
-L/usr/local/lib -lSDLmain -lSDL -Wl,-framework,Cocoa 
+0

N'incluez pas "SDLMain.h" si vous n'en avez pas besoin. Et je suppose que vous n'en avez pas besoin. – karlphillip

+0

-bash: sdl-config: commande introuvable –

+0

@David remplace le fichier sdl-config à la fin de la commande par les 2 autres lignes que j'ai collées à la fin de ma réponse. Bien sûr, vous devez vérifier si votre matériel est également sur le même chemin que le mien. Si non, * les trouver *. – karlphillip

Questions connexes