首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >g++ 4.6按照标题cstring的要求,不发出<bits/c++config.h>文件

g++ 4.6按照标题cstring的要求,不发出<bits/c++config.h>文件
EN

Stack Overflow用户
提问于 2012-02-09 05:14:25
回答 2查看 34.1K关注 0票数 21

c++包含目录中没有cstring头文件所需的名为bits/c++config.h的文件。但是,当我包含头文件cstring并使用g++编译时,它不会给我错误。当我尝试用clang++编译器以如下方式编译程序时,出现了这个问题。

代码语言:javascript
复制
$clang++ -cc1 -I/usr/include -I/usr/include/c++/4.6.1 -I/usr/lib/gcc/i686-linux-gnu/4.6.1 -I/usr/include/i386-linux-gnu -I opt_149739_build/include hello.cpp

In file included from /media/space/hello.cpp:2:
In file included from /media/space/opt_149739_build/include/clang/Driver/Driver.h:13:
In file included from /media/space/opt_149739_build/include/clang/Basic/Diagnostic.h:17:
In file included from /media/space/opt_149739_build/include/clang/Basic/DiagnosticIDs.h:18:
In file included from /media/space/opt_149739_build/include/llvm/ADT/StringRef.h:14:
/usr/include/c++/4.6.1/cstring:42:10: fatal error: 'bits/c++config.h' file not found
#include <bits/c++config.h>

我在Ubuntu11.04上使用g++ 4.6.1

哪里出了问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-09 06:28:22

文件bits/c++config.h是与当前编译器相关的特定于平台的包含文件,因此它隐藏在另一个目录中,默认情况下由g++搜索,但不是由clang++搜索。

在我的机器中,运行locate c++config.h会给出以下(相关)文件:

代码语言:javascript
复制
/usr/include/c++/4.6/i686-linux-gnu/64/bits/c++config.h
/usr/include/c++/4.6/i686-linux-gnu/bits/c++config.h

第一个是64位的,第二个是32位的。

因此,只需添加-I/usr/include/c++/4.6/i686-linux-gnu-I/usr/include/c++/4.6/i686-linux-gnu/64或您的平台所需的任何内容。

票数 32
EN

Stack Overflow用户

发布于 2012-02-09 06:32:16

这可能与clang++搜索其头文件的方式有关。

你会发现他们如何在15,4个月前修复fedora的样本补丁,here

有关更多信息,请参阅此red hat bugzilla post

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9201521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档