此问题是在对OBS进行二次开发过程中遇到的,反正就是莫名其妙的就出现了,obs源码编译是在3个月前就编译好了的,最近需要添加新功能,再次编译过程就出现了此问题。
一开始我就觉得可能是VS环境的问题,但对vs开发环境的自信,就一直觉得是我添加的代码的问题,因此就一直执着于代码,解决过程中如下:
环境如下:
VS2017、WIN10、OBS开源代码
问题描述:
OBS编译过程中,源码中libobs 库的编译时,c++标准库cstdlib一直在报错noexcept,出现此错误:

具体相关错误指向cstdlib的abs函数的问题,obs编译源文件如下(全是.c文件):

关键字noexcept作用:
这是c++11新特性,此关键字告诉编译器,函数中不会发生异常,这有利于编译器对程序做更多的优化。
如果在运行时,noexecpt函数向外抛出了异常(如果函数内部捕捉了异常并完成处理,这种情况不算抛出异常),程序会直接终止,调用std::terminate()函数,该函数内部会调用std::abort()终止程序。
网址:htt

本文记录了开发者在使用VS2017、Win10环境下对OBS开源代码进行二次开发时,遇到的noexcept编译错误。作者通过一步步排查,从环境配置、代码检查到解决方案的尝试,揭示了C++兼容性问题及如何正确处理cstdlib库的noexcept关键字。
最低0.47元/天 解锁文章
6280

被折叠的 条评论
为什么被折叠?



