MinGW Windows.h 无法编译
Posted
技术标签:
【中文标题】MinGW Windows.h 无法编译【英文标题】:MinGW Windows.h does not compile 【发布时间】:2013-02-24 13:42:56 【问题描述】:我在 64 位 Windows 7 上使用 MinGW g++ 4.6.2。至于 IDE,我使用 Eclipse CDT。
我的项目有问题 - 当我包含“Windows.h”文件时,我遇到了数千个错误。我试图创建一个仅包含 Windows.h 的不同文件,但它给出了相同的错误。
.h:
/*
* WinWrapper.h
*
* Created on: Feb 24, 2013
* Author: martin
*/
#ifndef WINWRAPPER_H_
#define WINWRAPPER_H_
char* winGetMainModule();
#endif /* WINWRAPPER_H_ */
.cpp:
#include "WinWrapper.h"
#include <windows.h>
char* winGetMainModule()
return nullptr;
没有其他文件包括“WinWrapper.h”或 Windows.h。
template with C linkage GameProj line 172, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\bits\locale_classes.tcc C/C++ Problem
template with C linkage GameProj line 228, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\bits\locale_classes.tcc C/C++ Problem
template with C linkage GameProj line 128, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\bits\locale_classes.tcc C/C++ Problem
template with C linkage GameProj line 133, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\bits\locale_classes.tcc C/C++ Problem
confused by earlier errors, bailing out GameProj line 118, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\bits\ios_base.h C/C++ Problem
declaration of C function 'constexpr std::_Ios_Openmode std::operator&(std::_Ios_Openmode, std::_Ios_Openmode)' conflicts with GameProj line 117, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\bits\ios_base.h C/C++ Problem
previous declaration 'constexpr std::_Ios_Fmtflags std::operator&(std::_Ios_Fmtflags, std::_Ios_Fmtflags)' here GameProj line 77, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\bits\ios_base.h C/C++ Problem
template with C linkage GameProj line 614, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\type_traits C/C++ Problem
template with C linkage GameProj line 623, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\type_traits C/C++ Problem
template with C linkage GameProj line 629, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\type_traits C/C++ Problem
template with C linkage GameProj line 636, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\type_traits C/C++ Problem
template with C linkage GameProj line 592, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\type_traits C/C++ Problem
template with C linkage GameProj line 598, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\type_traits C/C++ Problem
template with C linkage GameProj line 602, external location: c:\mingw\lib\gcc\mingw32\4.6.2\include\c++\type_traits C/C++ Problem
... + 大约 200 KB 的其他错误日志
其他项目信息:
-
使用库 SDL、SDL_Image
已定义 TARGET_WINX86
编译器标志 -c -fmessage-length=0 -std=c++0x
不知道发生了什么。请帮忙,在此先感谢:))
【问题讨论】:
有点奇怪,但听起来好像您在构建命令中使用的是gcc
而不是g++
。你为什么不显示你的构建命令。
pastebin.com/SfEhHXcT 感谢您的帮助
【参考方案1】:
来自 C:\workspace\GameProj\src\Base/string.h
↑罪魁祸首。
您有自己的 string.h
文件,由于包含路径,该文件正在被来自 winnt.h
的包含获取。
【讨论】:
谢谢,这就是问题所在。我希望 C++ 不容易出错,非常感谢你:))以上是关于MinGW Windows.h 无法编译的主要内容,如果未能解决你的问题,请参考以下文章