【发布时间】:2012-06-06 03:57:48
【问题描述】:
我在使用 MinGW 的预编译头文件时遇到问题。编译器似乎找到了预编译的头文件,但 cc1plus.exe 立即崩溃(cc1plus.exe 已停止工作)。
我知道这可能与 cc1plus.exe 的低堆栈大小有关,所以我做了以下操作来增加它:
editbin cc1plus.exe /STACK 33554432
我也试过无济于事:
editbin cc1plus.exe /STACK 32768k
但这并没有解决它,因为每当我尝试编译我的应用程序时它仍然会崩溃。
顺便说一句,如果重要的话,我正在使用最新的 MinGw (gcc v 4.6.2) 和最新的 Eclipse CDT。
我是否正确增加了 cc1plus.exe 的堆栈大小? 有没有人知道如何继续,因为我阅读了无数的文章和主题,但我现在有点没有想法。
g++ 似乎找到并接受了我的预编译头文件:
Building file: ../src/AdvancedOgreFramework.cpp
Invoking: GCC C++ Compiler
g++ -DHAVE_W32API_H -DNO_GCC_PRAGMA -I"C:\DevelopmentTools\workspaces\workspace_cpp
\MyGame\inc" -I"C:\docs\ogre3d\CEGUI\CEGUI-0.7.6\cegui\include\falagard" -I"C:\docs
\ogre3d\CEGUI\CEGUI-0.7.6\cegui\include\RendererModules\Ogre" -I"C:\docs\ogre3d\CEGUI
\CEGUI-0.7.6\cegui\include" -I"C:\docs\ogre3d\ogre1.8.0_mingw_sdk\OgreSDK_MinGW_v1-8-0
\include" -O0 -g3 -H -Wall -c -Winvalid-pch -MMD -MP -MF"src/AdvancedOgreFramework.d"
-MT"src/AdvancedOgreFramework.d" -o "src/AdvancedOgreFramework.o" "../src
/AdvancedOgreFramework.cpp"
! C:\DevelopmentTools\workspaces\workspace_cpp\MyGame\inc/Precompiled.h.gch
这是我作为预构建 make 运行以生成我的 .gch 的 makefile:
C_FLAGS = -O0 -g3 -Wall -c -MMD -MP
INC_PATH = -IC:/docs/ogre3d/ogre1.8.0_mingw_sdk/OgreSDK_MinGW_v1-8-0/include -IC:/docs
/ogre3d/CEGUI/CEGUI-0.7.6-mingw/cegui/include -IC:/docs/ogre3d/CEGUI/CEGUI-0.7.6-
mingw/cegui/include/RendererModules/Ogre -IC:/docs/ogre3d/CEGUI/CEGUI-0.7.6-mingw/cegui
/include/falagard
all: Precompiled.h.gch
@echo 'Finished precompiling headers....'
Precompiled.h.gch: Precompiled.h
@echo 'Building target: $@'
g++.exe Precompiled.h $(INC_PATH) $(C_FLAGS)
clean:
rm Precompiled.h.gch
.gch 的大小超过 169 MB,因为我正在尝试预编译大部分 Ogre3D 和 CEGUI 头文件。
谢谢你, 亚当。
【问题讨论】:
-
MinGW-w64 4.9.2 中仍未修复(从 wxWidgets-3.0.2 案例崩溃中打开 180MB 的 PCH 文件)
-
在 MinGW-w64 gcc 5.1.0(sourceforge.net/projects/mingw-w64/files/…) 上仍然崩溃
-
我刚刚在cygwin g++ 4.9.2上做了一个测试,没有看到崩溃的问题。在这里查看我的报告:gcc.gnu.org/bugzilla/show_bug.cgi?id=56926#c12
标签: mingw precompiled-headers stack-size