2012-07-05 89 views
2

鏈接的ffmpeg庫時,我很新在這裏,但我聽說,如果你想回答的問題,計算器是要求它>的地方。 <。所以我希望我的問題是不是太微不足道了,每個人都會生氣我缺乏研究(我試着用搜索引擎兩天已經d =沒有進步!) 我也問過這個問題在Qt的論壇,但我想我也會在這裏問。運行時錯誤Qt Creator中

所以......

在過去的幾天,我一直在使用OpenGL和類似擺弄周圍,試圖寫一個視頻播放器。

然而,當我嘗試導入上運行時(avcodec中,avformat,avutils等),錯誤出現的ffmpeg庫(程序編譯罰款)。在編譯並在調試模式下運行時,錯誤消息只給我一個內存地址和錯誤代碼135(DLL未找到)。

此錯誤,當我包括在我的代碼(例如av_register_all())將這些庫函數發生,並且無論該功能是否實際上被稱爲它發生。

所以我想這些鏈接庫時,我做了什麼。我目前使用 : 的Windows Vista(32位), Qt Creator的2.4.1基於Qt 4.7.4(32位), Zeranoe的FFmpeg的建設混帳3233ad4(2012-06-30)

我。親文件包括:

QT  += core gui opengl 

TARGET = test 
TEMPLATE = app 


SOURCES += main.cpp\ 
     mainwindow.cpp \ 
    glwidget.cpp 

HEADERS += mainwindow.h \ 
    glwidget.h \ 

FORMS += mainwindow.ui 


LIBS += -L"$$_PRO_FILE_PWD_/libraries/ffmpeg/libs/" -lavcodec -lavformat -lavutil 
INCLUDEPATH += libraries/ffmpeg/includes 

我已經嘗試了很多變化的LIBS + =行,並檢查了我的文件路徑很多次。然而,未找到錯誤的DLL發生在所有這些變化=(

有什麼事做時,這些包括提前?

感謝我忘了>。<, (年輕幼稚)有志dev

+0

ffmpeg是否在可執行文件路徑中?嘗試將鏈接的ffmpeg庫複製到生成可執行文件的路徑 – 2012-07-05 10:24:57

回答

1

由於錯誤提示找不到一個DLL,並且在包含ffmpeg函數時發生這種情況,這意味着ffmpeg庫是動態鏈接的(即它們是DLL)。這意味着爲了讓exe工作,它需要加載ffmpeg DLL,你需要把這些DLL放在與你exe文件相同的目錄中,並將它們複製到那裏,使用dependency walker來查看你需要的DLL py,但它們應該看起來像avcodec-52.dll, avdevice-52.dll, avformat-52.dll, avutil-49.dll,也許還有一些,取決於你的ffmpeg版本。

+0

感謝您的回答!有沒有可能靜態鏈接庫?您提到的dll實際上並不在我下載的版本中(開發版本) – dxthegreat 2012-07-05 19:56:02

+0

您是否從源代碼編譯ffmpeg?你從哪裏下載的? – sashoalm 2012-07-06 06:15:41

+0

我從http://ffmpeg.zeranoe.com/builds/(開發版)下載了它。共享的版本確實有這些庫,但是我希望不必在每次編譯時都複製dll。我不確定這些庫是否使用vC++或mingw(或其他)工具鏈編譯 – dxthegreat 2012-07-06 09:49:50