Библиотеките на Windows за ffmpeg не се свързват (visual studio)?

И така, опитвам се да накарам проект, който пиша, да се свърже с ffmpeg библиотеки, но продължавам да получавам грешки при свързване:

1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "struct AVCodec * __cdecl avcodec_find_encoder(enum AVCodecID)" (?avcodec_find_encoder@@YAPEAUAVCodec@@W4AVCodecID@@@Z)
1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "int __cdecl av_dict_set(struct AVDictionary * *,char const *,char const *,int)" (?av_dict_set@@YAHPEAPEAUAVDictionary@@PEBD1H@Z)
1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "int __cdecl avcodec_encode_video(struct AVCodecContext *,unsigned char *,int,struct AVFrame const *)" (?avcodec_encode_video@@YAHPEAUAVCodecContext@@PEAEHPEBUAVFrame@@@Z)
1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "struct AVCodecContext * __cdecl avcodec_alloc_context3(struct AVCodec const *)" (?avcodec_alloc_context3@@YAPEAUAVCodecContext@@PEBUAVCodec@@@Z)
1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "struct AVFrame * __cdecl avcodec_alloc_frame(void)" (?avcodec_alloc_frame@@YAPEAUAVFrame@@XZ)
1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "void __cdecl av_free(void *)" (?av_free@@YAXPEAX@Z)
1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "int __cdecl avcodec_open2(struct AVCodecContext *,struct AVCodec const *,struct AVDictionary * *)" (?avcodec_open2@@YAHPEAUAVCodecContext@@PEBUAVCodec@@PEAPEAUAVDictionary@@@Z)
1>GLViewLASReader.obj : error LNK2001: unresolved external symbol "int __cdecl avcodec_close(struct AVCodecContext *)" (?avcodec_close@@YAHPEAUAVCodecContext@@@Z)
1>C:\STEAMiE\usr\modules\LASReader\win32\Release\LASReader.exe : fatal error LNK1120: 8 unresolved externals

Изтеглих пакета за разработка от:

http://ffmpeg.zeranoe.com/builds/

Но когато се свържа срещу библиотеките, както обикновено, получавам грешките на линкера. Този пакет по някакъв начин различен ли е от всяка друга библиотека, която съм опитвал да използвам, за която просто се нуждая от .h/.libs? Има ли причина да е така?


person Chad Mourning    schedule 21.10.2013    source източник
comment
Тъй като няма префикс _ в идентификатора на функцията във вашето съобщение за грешка на линкера, подозирам, че сте забравили да поставите включващия файл ffmpeg, който използвате, в раздел „extern C { }“.   -  person alexbuisson    schedule 21.10.2013
comment
Е, това беше. Това е много време, което отделих за такова просто нещо. Ще се опитам да го запомня за следващия път. Благодаря ти.   -  person Chad Mourning    schedule 21.10.2013


Отговори (1)


Тъй като няма префикс _ в идентификатора на функцията във вашето съобщение за грешка на линкера, подозирам, че сте забравили да поставите файла за включване на ffmpeg, който използвате, в раздел „extern „C“ { }“.

person alexbuisson    schedule 21.10.2013