美文网首页
vs2010直接调用av_register_all crash问

vs2010直接调用av_register_all crash问

作者: leehm | 来源:发表于2018-11-12 12:32 被阅读0次

    需要做一个视频导出的功能,通过ffmpeg来实现,vs2010里面引用ffmpeg库的 dll 和 lib 文件

    第一步
    av_register_all
    就直接crash了, 查了近半天的时间,都快崩溃了,无意中网上看到一个帖子,

    The setting is under "Linker | Optimization | References" set to "Keep Unreferenced Data (/OPT:NOREF)" – Adi Shavit Jun 24 '13 at 19:10

    试了一下,居然好了。。。。。。

    由于引用ffmpeg的工程个静态库,所以没有这些选项,因此只得在调用此静态库的dll工程里面设置:
    Linker | Optimization | References-----(/OPT:NOREF)

    微软关于这个的解释是:
    /OPT:REF eliminates functions and/or data that are never referenced 清除从未引用的函数和数据
    /OPT:NOREF keeps functions and/or data that are never referenced 保留从未引用的函数和数据。

    默认是/opt:REF

    https://msdn.microsoft.com/zh-cn/library/bxwfs976.aspx

    通俗点就是: 在链接期间,编译器会把一些你从未没有使用过的函数或者数据给优化掉,即最终的程序中不包含此部分函数和数据的执行代码

    反过来,就是优化时,编译器不做此类工作。

    相关文章

      网友评论

          本文标题:vs2010直接调用av_register_all crash问

          本文链接:https://www.haomeiwen.com/subject/bcnqfqtx.html