我在使用VC2010編譯我的一個應用程序中使用libVLC(也試過VC2008),我的應用程序的調試模式很好,但只要我編譯爲發佈模式並嘗試調用libVLC我得到一個崩潰。我在vlc論壇上尋求幫助,有人提到這通常指的是調用約定的差異,但我不確定要檢查是否是這種情況,或者更重要的是如何解決它。使用VC2010修復libvlc發佈模式崩潰
一些注意事項:
- 我使用Ubuntu和下面的如何引導上libVLC維基libVLC編譯。
- 我在C++文件中使用libVLC。
- 我試過在沒有調試信息的情況下編譯libVLC。
- 我已經嘗試調用libvlc_get_version和libvlc_new作爲我的第一個調用,都崩潰。
即使我沒有在我的發行版本的符號,我可以看到調用堆棧,它肯定是越來越亂了,因爲它是顯示那些從來有史以來叫這似乎表明堆棧功能錯誤的調用約定,但我不知道如何檢查/修復此問題。
我不確定它是否是相關的,但我與libvlc有一個問題是我試圖延遲加載dll(試過沒有爲上述問題做這件事,但它沒有改變),我「M添加鏈接標誌:/DELAYLOAD:libvlc.dll /DELAYLOAD:libvlccore.dll
,但是當連接時,我得到這些警告:
LINK : warning LNK4199: /DELAYLOAD:libvlc.dll ignored; no imports found from libvlc.dll
LINK : warning LNK4199: /DELAYLOAD:libvlccore.dll ignored; no imports found from libvlccore.dll
但是它絕對是鏈接到lib和需要的dll與Dependency Walker中看到的(更不用提我調用它)..再次不確定這是否有關,但也想把它扔出去。
我很感激任何意見/在這一個幫助。謝謝!
我發現添加/ INCREMENTAL到我的鏈接器標誌修復了問題,但我不明白爲什麼,直到我做我不認爲這是一個解決方案。 :/ – mirswith 2012-01-16 21:39:35
您可以使用[libvlc-sdk]中的.libs(https://github.com/RSATom/libvlc-sdk)。 libs會使用[vc-libvlc](https://github.com/RSATom/vc-libvlc)生成,它基於https://wiki.videolan.org/GenerateLibFromDll/ – RSATom 2015-09-15 11:57:15