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


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

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

(转载请注明出处http://blog.csdn.net/raymond_lu_rl/article/details/7515900)


今天使用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上构建程序,一切正常:-)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值