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++ 单元测试 访问控制小坑 - 技术学习小站

相关推荐
小刘同学++16 分钟前
用 OpenSSL 库实现 3DES(三重DES)加密
c++·算法·ssl
LunaGeeking2 小时前
重要的城市(图论 最短路)
c++·算法·编程·图论·最短路·floyd
君鼎2 小时前
C++内存管理与编译链接
c++
liulun2 小时前
玩转 Skia 的颜色
c++
阿伍.2 小时前
【指针】(适合考研、专升本)
c++·考研·c#
了不起的杰2 小时前
[C++][设计模式] : 单例模式(饿汉和懒汉)
c++·单例模式·设计模式
1白天的黑夜13 小时前
二叉树-226.翻转链表-力扣(LeetCode)
数据结构·c++·leetcode
秋风&萧瑟3 小时前
【C++】多重继承与虚继承
开发语言·c++
说码解字3 小时前
C++ 实现环形缓冲区
开发语言·c++
go_bai3 小时前
map与set的模拟实现
开发语言·c++·笔记·学习方法