mingw32_gt_pch_use_address中内部错误,位于config/i386/host-mingw 32.c:190:MapViewOfFileEx:试图访问无效地址。我在sublime-text 3中编译c++程序时遇到这个错误。如何解决这个错误?
vsmadaxz1#
在我的例子中,这个问题是由于#include<bits/stdc++.h>。注解这一行并获取#include <iostream>来解决问题。如果你已经预编译了<stdc++.h>,那么你在这个路径下有stdc++.h.gch文件(路径可能会根据你安装MinGW的位置和版本而有所不同):C:\MinGW\lib\gcc\mingw32\9.2.0\include\c++\mingw32\bits所以为了解决这个问题,删除stdc++.h.gch文件,并将这两个命令粘贴到终端中:1.转到命令行中具有预编译头的路径cd C:\MinGW\lib\gcc\mingw32\9.2.0\include\c++\mingw32\bits
#include<bits/stdc++.h>
#include <iostream>
<stdc++.h>
hmmo2u0o2#
我安装CodeBlocks后遇到了这个问题,可能是因为代码块MINGW的设置。我最初的MinGW来自DEV-C++。所以我做了这个。1.从PATH中删除"C:\...\GnuWin"。2.确保你有编译器的旧路径。
MINGW
MinGW
PATH
"C:\...\GnuWin"
fykwrbwg3#
对我来说,这个错误弹出的权利后,我更新了我的sublimeText应用程序到最新版本,所以只需重新启动系统为我工作!
vs91vp4v4#
我不知道是什么导致了这个问题,但我以前见过几次。对我来说,一个完整的清理和重新编译解决了它。
w8rqjzmb5#
我在预编译stdc++.h文件后遇到了同样的问题,为了消除这个错误,我删除了这个头文件的编译版本,即stdc++.gch。stdc . h和stdc.gch的文件路径为
stdc++.h
stdc++.gch
C:\Users\UserName\Downloads\MinGW\include\c++\9.2.0\x86_64-w64-mingw32\bits
shyt4zoc6#
如果您使用的是gcc-9.2.0-1 MinGW包,则可能会出现此问题。引用bustercopley from ASLR is now enabled for GCC binaries and it breaks PCH #5719:新的gcc-9.2.0-1包中的二进制文件在其PE头中启用了ASLR。这会破坏使用预编译头,因为它们不再可以Map到可预测的地址。以前的包有“好”的二进制文件,但禁用了ASLR。(这不是包本身的变化。我重建了9.1.0-3包,得到的二进制文件是“坏”的。)I raised this on the GCC bug tracker。[...]在gcc软件包的新版本发布之前,解决方法是从cc1.exe和cc1plus.exe中删除ASLR标志(例如,使用setdllcharacteristics,您可能更喜欢自己编译)或从现有的PKGBUILD脚本(已更新binutils)重建gcc。已在2602139中修复了该问题,另一位用户报告称,在升级到gcc-9.2.0-2后,该问题已得到修复。为了您的参考/学习目的,我通过谷歌搜索“"internal error in mingw32_gt_pch_use_address, at config/i386/host-mingw32.c" "MapViewOfFileEx: Attempt to access invalid address."”找到了这个,这让我找到了https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101183,它指向https://github.com/msys2/MINGW-packages/issues/5719。
2602139
"internal error in mingw32_gt_pch_use_address, at config/i386/host-mingw32.c" "MapViewOfFileEx: Attempt to access invalid address."
6条答案
按热度按时间vsmadaxz1#
在我的例子中,这个问题是由于
#include<bits/stdc++.h>
。注解这一行并获取#include <iostream>
来解决问题。如果你已经预编译了
<stdc++.h>
,那么你在这个路径下有stdc++.h.gch文件(路径可能会根据你安装MinGW的位置和版本而有所不同):C:\MinGW\lib\gcc\mingw32\9.2.0\include\c++\mingw32\bits
所以为了解决这个问题,删除stdc++.h.gch文件,并将这两个命令粘贴到终端中:
1.转到命令行中具有预编译头的路径
cd C:\MinGW\lib\gcc\mingw32\9.2.0\include\c++\mingw32\bits
g -std=c++17 stdc ++.h
我在codechef讨论中找到了这个解决方案,它对我很有效。
hmmo2u0o2#
我安装CodeBlocks后遇到了这个问题,可能是因为代码块
MINGW
的设置。我最初的MinGW
来自DEV-C++。所以我做了这个。
1.从
PATH
中删除"C:\...\GnuWin"
。2.确保你有编译器的旧路径。
fykwrbwg3#
对我来说,这个错误弹出的权利后,我更新了我的sublimeText应用程序到最新版本,所以只需重新启动系统为我工作!
vs91vp4v4#
我不知道是什么导致了这个问题,但我以前见过几次。
对我来说,一个完整的清理和重新编译解决了它。
w8rqjzmb5#
我在预编译
stdc++.h
文件后遇到了同样的问题,为了消除这个错误,我删除了这个头文件的编译版本,即stdc++.gch
。stdc . h和stdc.gch的文件路径为
shyt4zoc6#
如果您使用的是gcc-9.2.0-1 MinGW包,则可能会出现此问题。引用bustercopley from ASLR is now enabled for GCC binaries and it breaks PCH #5719:
新的gcc-9.2.0-1包中的二进制文件在其PE头中启用了ASLR。这会破坏使用预编译头,因为它们不再可以Map到可预测的地址。以前的包有“好”的二进制文件,但禁用了ASLR。(这不是包本身的变化。我重建了9.1.0-3包,得到的二进制文件是“坏”的。)I raised this on the GCC bug tracker。
[...]
在gcc软件包的新版本发布之前,解决方法是从cc1.exe和cc1plus.exe中删除ASLR标志(例如,使用setdllcharacteristics,您可能更喜欢自己编译)或从现有的PKGBUILD脚本(已更新binutils)重建gcc。
已在
2602139
中修复了该问题,另一位用户报告称,在升级到gcc-9.2.0-2后,该问题已得到修复。为了您的参考/学习目的,我通过谷歌搜索“
"internal error in mingw32_gt_pch_use_address, at config/i386/host-mingw32.c" "MapViewOfFileEx: Attempt to access invalid address."
”找到了这个,这让我找到了https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101183,它指向https://github.com/msys2/MINGW-packages/issues/5719。