2015-08-14 4 views
0

Je suis en train de compiler ce tutoriel à partir du libav doc: linklibva - référence non définie à « av_frame_alloc » et plus

Je ne change rien sur le code!

Mais quand je compile avec:

gcc test.c -lavformat -lswscale -lavdevice -lavformat -lavcodec -lavutil -lpthread -lm -o example 

Je reçois ces erreurs:

undefined reference to `check_sample_fmt' 
undefined reference to `select_sample_rate' 
undefined reference to `select_channel_layout' 
undefined reference to `av_frame_alloc' 
undefined reference to `av_frame_free' 

Recherche Dr.google Je lis qu'il a peut-être quelque chose à voir avec l'ordre de liaison des libs . Mais je n'ai pas encore trouvé le bon ?!

EDIT: cette « doublon possible » ne semble pas être lié à mon problème

+0

Merci Dayal, j'ai déjà vu ce sujet! Mais ne pense pas que cela est lié à mon problème – IIIIIIIIIIIIIIIIIIIIII

+0

Je l'ai également essayé avec cet ordre: gcc -o exemple test.c -lavformat -lavcodec -lavutil -lswscale -lfdk-aac -lao -lavdevice -lavresample -lpthread -lm Maintenant je Avoir seulement une référence indéfinie à 'av_frame_alloc et av_frame_free' – IIIIIIIIIIIIIIIIIIIIII

+0

Êtes-vous sûr de devoir lier toutes ces bibliothèques? Cet exemple de programme compilé très bien pour moi avec juste 'gcc test.c -lavutil -lm -lavcodec -o exemple' – szx

Répondre

0

ffmpeg est livré avec un Makefile pour les exemples. J'ai pris celui-ci et l'ai simplement utilisé pour mes exemples de libav. Link