gcc选项-fno-access-control 使用

背景:

在进行eigen库进行移植时,总是报编译错误:

error: 'struct std::basic_stringbuf<_CharT, _Traits, _Alloc>::__xfer_bufptrs' redeclared with different access struct __xfer_bufptrs

,单独写一个测试程序使用eigen库,编译跟运行都正常,但继承到项目中就是编译不通过,百思不得其解,后来查看资料,发现是这个项目中在编写单元测试时,修改了代码的访问权限导致的。

问题解决:

1.删除掉代码中修改权限代码。

cpp 复制代码
// #undef private
// #undef protected
// #define private   public
// #define protected public

#include "XXXXX.hpp"

// #undef private
// #undef protected
// #define private   private
// #define protected protected

2.在cmakelist中添加编译选项-fno-access-control

bash 复制代码
set(CMAKE_CXX_FLAGS "-fno-access-control")

使用-fno-access-control 选项可以实现对私有成员的访问,比使用预定义的方式规范。

参考链接:

C++ 单元测试 访问控制小坑 - 技术学习小站

相关推荐
‘’林花谢了春红‘’3 小时前
C++ list (链表)容器
c++·链表·list
机器视觉知识推荐、就业指导5 小时前
C++设计模式:建造者模式(Builder) 房屋建造案例
c++
Yang.996 小时前
基于Windows系统用C++做一个点名工具
c++·windows·sql·visual studio code·sqlite3
熬夜学编程的小王7 小时前
【初阶数据结构篇】双向链表的实现(赋源码)
数据结构·c++·链表·双向链表
zz40_7 小时前
C++自己写类 和 运算符重载函数
c++
六月的翅膀7 小时前
C++:实例访问静态成员函数和类访问静态成员函数有什么区别
开发语言·c++
liujjjiyun7 小时前
小R的随机播放顺序
数据结构·c++·算法
¥ 多多¥7 小时前
c++中mystring运算符重载
开发语言·c++·算法
天若有情6738 小时前
c++框架设计展示---提高开发效率!
java·c++·算法