问题描述
在引入<windows.h>头文件时编译报错。
FAILED: CMakeFiles/untitled.dir/main.cpp.obj
"D:\software\Clion\CLion 2023.2.1\bin\mingw\bin\g++.exe" -g -fdiagnostics-color=always -MD -MT CMakeFiles/untitled.dir/main.cpp.obj -MF CMakeFiles\untitled.dir\main.cpp.obj.d -o CMakeFiles/untitled.dir/main.cpp.obj -c D:/CLionProjects/untitled/main.cpp
In file included from D:/software/Clion/CLion 2023.2.1/bin/mingw/x86_64-w64-mingw32/include/wtypes.h:8,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/x86_64-w64-mingw32/include/winscard.h:10,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/x86_64-w64-mingw32/include/windows.h:97,
from D:/CLionProjects/untitled/util.h:8,
from D:/CLionProjects/untitled/main.cpp:3:
D:/software/Clion/CLion 2023.2.1/bin/mingw/x86_64-w64-mingw32/include/rpcndr.h:64:11: error: reference to 'byte' is ambiguous
64 | typedef byte cs_byte;
| ^~~~
In file included from D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/memory_resource.h:38,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/string:58,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/locale_classes.h:40,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/bits/ios_base.h:41,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/ios:44,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/ostream:40,
from D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/iostream:41,
from D:/CLionProjects/untitled/main.cpp:1:
D:/software/Clion/CLion 2023.2.1/bin/mingw/lib/gcc/x86_64-w64-mingw32/13.1.0/include/c++/cstddef:69:14: note: candidates are: 'enum class std::byte'
69 | enum class byte : unsigned char {};
| ^~~~
^~~~
解决
大概是标准库里宏定义或者枚举或者typedef byte了,产生了冲突。
这个时候就建议不使用using namespace std;