我的主目录中有 g++ 4.8.1 的自定义安装。然而,该安装中的包含文件没有扩展名! (tgmath.h、fenv.h、complex.h 和 cxxabi.h 除外)
因此,即使我将安装包含目录(对我来说位于 include/c++/4.8.1 下)包含在 C_INCLUDE_PATH 中,它仍然会转到系统范围的 gcc 包含文件。
为什么 gcc 安装中的包含文件没有扩展名,将它们重命名为 .h 扩展名可以解决问题吗?
编辑:背景——我正在尝试在 Centos 6.5 上编译 Qt。使用系统范围的 g++(版本 4.4.7)进行编译可以工作,但是使用我的自编译版本的 g++(4.8.1)则不起作用。它给了我错误
在 /home/sj1/Software/qt/4.8.7/build/include/QtCore/../../../qt-everywhere-opensource-src-4.8.7/src/corelib/tools/ 包含的文件中qbytearray.h:48:0,来自 /home/sj1/Software/qt/4.8.7/build/include/QtCore/qbytearray.h:1,来自 /home/sj1/Software/qt/4.8.7/build/ include/QtCore/../../../qt-everywhere-opensource-src-4.8.7/src/corelib/tools/qstring.h:46,来自/home/sj1/Software/qt/4.8.7 /build/include/QtCore/qstring.h:1,来自 /home/sj1/Software/qt/4.8.7/build/include/QtCore/../../../qt-everywhere-opensource-src- 4.8.7/src/corelib/io/qiodevice.h:51,来自/home/sj1/Software/qt/4.8.7/build/include/QtCore/qiodevice.h:1,来自/home/sj1/Software/ qt/4.8.7/build/include/QtCore/../../../qt-everywhere-opensource-src-4.8.7/src/corelib/io/qdatastream.h:46,来自/home/sj1 /Software/qt/4.8.7/build/include/QtCore/qdatastream.h:1,来自/home/sj1/Software/qt/4.8.7/build/include/QtCore/../../../ qt-everywhere-opensource-src-4.8.7/src/corelib/tools/qstringlist.h:46,来自 /home/sj1/Software/qt/4.8.7/build/include/QtCore/qstringlist.h:1,来自project.h:45,来自project.cpp:42:/usr/include/string.h:548:5:错误:'__locale_t'尚未声明__locale_t __loc)