2011-06-21 75 views
0

問題是這樣的:我寫了一個使用FFMPEG的簡單程序。編譯如下:FFMPEg和gcc問題


gcc -lavcodec -lavformat -lavutil -c test.c 

gcc -lavcodec -lavformat -Lavut -o test test.o 

編譯沒有問題,出現測試文件,但是當你開始: 。 /測試 時發生的錯誤:

。/test:加載共享庫時出錯:libavcodec.so.53:無法打開共享目標文件:沒有這樣的文件或目錄

在什麼ffmpeg最初構建和安裝和文件libavcodec.so.53那裏。可能是什麼問題?

+0

只是一個評論:你應該始終把庫最後鏈接時:'gcc的-o測試test.o -lavcodec -lavformat -Lavut'。當你運行這個時,確保你設置LD_LIBRARY_PATH來包含'avut'。只需運行'ldd。/ test'來查看加載器期望庫的位置。 –

+0

謝謝。得到它了。好! – Kyborg2011

回答

1

你出現在定製庫目錄,-Lavut被鏈接到的庫。

檢查您的裝載機查找可執行文件的庫:

ldd ./test 

如果任何人都在非標準目錄(和ldd表明特定庫無法找到),追加的給LD_LIBRARY_PATH:

LD_LIBRARY_PATH=/tmp/work/avut ./test 

如果你喜歡,你可以硬編碼庫路徑與-rpath連接選項,如可執行文件gcc ... -Wl,-rpath -Wl,/tmp/work/avut

+0

一切都好。幫助:LD_LIBRARY_PATH =/usr/local/lib。 /測試 謝謝:) – Kyborg2011