您的位置:首页 > 其它

release版本程序调用libvlc接口出现异常

2012-04-26 21:33 399 查看
release版本程序调用libvlc接口出现异常

super.raymond.lu[at]gmail[dot]com

(转载请注明出处/article/10579770.html)

今天使用vlclib来读取视频文件,发现程序在debug模式下运行时正常,但是换成release模式编译就会出现问题。

http://forum.videolan.orghttp://stackoverflow.com/查了一下,发现不少人碰到这个问题。但是都没有比较好的解决的办法。

下面是回答得比较好的帖子:

http://forum.videolan.org/viewtopic.php?f=32&t=97146

1、有的说是函数调用约定的问题。

2、有的说是因为开了/OPT:REF 选项的问题,需要换成/OPT:NOREF选项。

虽然在VS2008下把Project->Linker->Optimization->References链接选项换成/OPT:NOREF,重新编译后可以正常运行。单是总觉得该编译选项的方式心里不踏实,总怕后面用到什么其它库后会有冲突。更加重要的是我在QT开发环境中找不到/OPT:NOREF选项,这样的话就无法使用Release版本发行调用libvlc的QT程序。

于是寻找其它的办法解决问题。

偶然的情况下,我用dumpbin 和lib命令生成的libvlc.lib文件重新构建release程序,发现竟然可以运行了。具体的方法如下:

http://wiki.videolan.org/GenerateLibFromDll

之前使用的lib文件是从vlc\sdk\lib烤过来的,和这个生成的lib竟然有这个区别。

使用重新生成的libvlc.lib分别在VS2008和QT上构建程序,一切正常:-)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐