2021-08-14
g++ ffmpeg_main.cpp -o main -lstdc++ -lavformat -lavutil
報錯
/bin/ld: /tmp/ccIemqbh.o: undefined reference to symbol 'avcodec_parameters_copy@@LIBAVCODEC_58'
/usr/local/lib/libavcodec.so: error adding symbols: DSO missing from command line
collect2: 錯誤:ld 返回 1
原因,動態依賴庫的引用是有順序的,改成這樣就ok了。
g++ ffmpeg_main.cpp -o main -lavformat -lavcodec -lavutil
-------------------------------------------------------------------------------------------------------------------------------
運行./main的時候,報錯,說動態庫不存在
./main: error while loading shared libraries: libavformat.so: cannot open shared object file: No such file or directory
然後我把動態庫放在ffmpeg目錄下,然後把目錄拷到/lib下面,運行ldconfig, 發現還是不生效。
後來只能按網上試一試:
在ld.so.conf文件中,加入FFmpeg安裝lib路徑
sudo vi /etc/ld.so.conf
加入:/usr/local/ffmpeg/lib/
完成後執行如下命令
sudo ldconfig
摘自:https://blog.csdn.net/wh8_2011/article/details/69808630