我在项目中使用Opensplice库,一切都在使用gcc4。我想用gcc11编译我的项目,但我在Opensplice部分遇到了很多相同的错误。例如:
implicitly-declared ‘dds::core::status::SampleRejectedState& dds::core::status::SampleRejectedState::operator=(const dds::core::status::SampleRejectedState&)’ is deprecated
我知道我们应该在gcc11中同时定义赋值运算符和复制构造函数,或者两者都不定义。但是,如何为Opensplice修复此问题?我可以用gcc11再次构建Opensplice吗?或者我应该做其他事情?
要解决此问题,我们可以执行
1-要求供应商内部解决此问题
2-通过删除-Werror
标志来禁用所有这些错误
3-如果希望保留-Werror
标志,则可以添加-Wno-deprecated-copy
或Wno-error=depricated-copy
。