我在使用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