Statik olarak libavcodec ve libavformat ile bağlantılı statik olarak bağlantılı bir yürütülebilir dosya oluşturmak istiyorum./Avcodec_alloc_context ancak ffmpeg bağlayıcı siparişi için tanımlanmamış başvuru doğru mu?
- şu şekildedir:./configure --enable-static --enable-gpl --enable-nonfree --disable-vaapi
--disable-libopus --prefix=myBuild --disable-swresample
bağlayıcıları ayarlanır: derlerken
g++ -O2 -static -o myBin myBin-myBin.o someotherlibraries.a
-L/ffmpeg/myBuild/lib -lavformat -lavcodec -lavutil -lrt -lm -lpthread -lz
, ben SADECE BİR hata mesajı> olsun statik ffmpeg kütüphanesi ile inşa edildi
src/ffmpeg/myProgram.cpp:115: error: undefined reference to 'avcodec_alloc_context'
nm /ffmpeg/myBuild/lib/libavcodec.a çıktısı | grep avcodec_alloc_context:
U avcodec_alloc_context3
U avcodec_alloc_context3
000003c0 T avcodec_alloc_context3
U avcodec_alloc_context3
Ben extern "C" ile libavcodec.h dahil {} ve benim statik bağlayıcı sırası doğru olduğunu düşünüyoruz. Neden bu hatayı alıyorum? Bu yöntem kullanımdan kaldırıldı mı? Bunu Nasıl Çözebilirim?
ÇÖZÜM:
Dont belki eski bir kod parçacıkları
avCtx = avcodec_alloc_context()
kullanın, ancak eğer doğru geri çağırmak
codec = avcodec_find_decoder(CODEC_ID_XYZ);//for completeness but should be the same as before
avCtx = avcodec_alloc_context3(codec)
'nm /ffmpeg/myBuild/lib/libavcodec.a çıktısı nedir -lavcodec
Ayrıca bağlantı sırası -lavutil -lavformat olmalıdır | grep avcodec_alloc_context'? –
Çıktıya yazı ekledim – user2212461
@PaoloBonzini size bir şey anlatıyor mu? Mutlak kütüphane yolları ile ilgili – user2212461