簡體   English   中英

無法在Ubuntu 14.04 32位上編譯ffmpeg bohr

[英]unable to compile ffmpeg bohr on ubuntu 14.04 32bit

我正在開發一個應用程序,以從網絡攝像頭捕獲視頻並將其流式傳輸到Android。 我正在使用ffmpeg最新版本-在Ubuntu 14.04 32位上使用2.5.2“ Bohr”,並使用Eclipse作為IDE。

編譯時收到此錯誤:

g++ -L/usr/local/lib -L/home/idanhahn/ffmpeg/ffmpeg_build/lib -o "camera"  ./src/.metadata/.plugins/org.eclipse.cdt.make.core/specs.o  ./src/CameraSec.o ./src/camera.o  ./.metadata/.plugins/org.eclipse.cdt.make.core/specs.o   -lz -lswscale -lopencv_core -lavcodec -lavutil -lpthread -lboost_thread -lboost_system -lboost_date_time -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann -lavformat
/usr/bin/ld: /home/idanhahn/ffmpeg/ffmpeg_build/lib/libavformat.a(http.o): undefined reference to symbol 'inflateInit2_'
/usr/lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/libz.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

我已經鏈接了avformat(和其他ffmpeg相關的庫)。

我嘗試了以下方法:

  1. 鏈接的libz。
  2. 嘗試使用此處的說明重新編譯: http : //trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

可能是什么問題呢? 為什么鏈接器指向i686,然后再返回i386?

那么您需要將-llzma放在ffmpeg的編譯行中。

或者我可以通過一種更簡單的方法來替代它。 試試這個: http : //ubuntuforums.org/showthread.php?t=2219550&p=13101922#post13101922

這將很簡單..

您實際上只是在這里缺少其他庫。 只需在編譯行的末尾添加-llzma即可。

我還必須添加其他缺少的庫。 只是追加,以防您遇到相同的問題:

-lswresample -lm -lz

這是因為libavcodec包含一些math和zlib標頭,因此您還必須鏈接到相應的庫。 lzma也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM