一 原因
1、造成“ACCESS_MASK不明确”错误的头文件:
#include "dcmtk/dcmdata/dctk.h"
#include "dcmtk/dcmimgle/dcmimage.h"
#include "dcmtk/dcmjpeg/djdecode.h"
2、引用的类中有static函数
3、有多余的#include
二 解决方法
1、去除自定义的命名空间
2、将引用的含static函数的类头文件顺序放在首位
3、去除多余的#include ,比如calibGlobal.h内有#include
//Error C2872 'ACCESS_MASK': ambiguous symbol
一个合理的符合谷歌编程规范的头文件包含顺序:
#include <QObject>
#include <QDebug>
#include <QDateTime>
#include <QDir>
#include <iostream>
#include <algorithm>
#include <Eigen/Dense> //Include Eigen's headers first. See https://github.com/opencv/opencv/issues/17366"
#include <opencv2/opencv.hpp>
#include <opencv2/core/eigen.hpp>
#include <opencv2/imgproc.hpp>
三 参考链接
求教:ACCESS_MASK如何解析,望有解析过的朋友不吝赐教-CSDN社区
Access Mask - Windows drivers | Microsoft Learn
ACCESS_MASK (Winnt.h) - Win32 apps | Microsoft Learn
(164条消息) Qt ‘ACCESS_MASK‘ is ambiguous typedef ACCESS_MASK *PACCESS_MASK;_麻衣学姐的原配男友的博客-CSDN博客
Google 开源项目风格指南——中文版 — Google 开源项目风格指南 (zh-google-styleguide.readthedocs.io)