CodeSourcery 给出编译错误:缺少位/c++config.h

Posted

技术标签:

【中文标题】CodeSourcery 给出编译错误:缺少位/c++config.h【英文标题】:CodeSourcery giving compilation error: missing bits/c++config.h 【发布时间】:2010-07-20 14:01:57 【问题描述】:

在我的项目中,我将 Eigen C++ 库用于线性代数。 当我为 ARM NEON 打开矢量化标志 (-mfpu=neon -mfloat-abi=softfp) 时,我收到编译器错误 - c++config.h 没有这样的文件或目录。

我不明白出了什么问题,这个 bits/c++config.h 是什么?我应该怎么做才能解决这个问题?

维克拉姆


main.c

#include<iostream>
#include <Eigen/Core>

// import most common Eigen types
using namespace Eigen;

int main(int, char *[])

    Matrix4f m3;
    m3 << 1, 2, 3, 0, 4, 5, 6, 0, 7, 8, 9, 0, 0, 0, 0, 0;
    Matrix4f m4;

    asm("#begins here");
    m4 = m3*m3;
    asm("#ends here");

    std::cout << "m3\n" << m3 << "\nm4:\n" << m4 << std::endl;

    std::cout << "DONE!!";


制作文件

CPP=    /home/ubuntu/CodeSourcery/Sourcery_G++/bin/arm-none-linux-gnueabi-c++

all: main 

main: main.cpp
    $(CPP) -mfpu=neon -mfloat-abi=softfp -I /home/ubuntu/Documents/eigen/ main.cpp -o main

clean:
    rm -rf *o main

错误

**** Build of configuration Debug for project Test_Eigen ****

make all
/home/ubuntu/CodeSourcery/Sourcery_G++/bin/arm-none-linux-gnueabi-c++ -mfpu=neon -mfloat-abi=softfp -I /home/ubuntu/Documents/eigen/ main.cpp -o main
In file included from main.cpp:1:
/home/ubuntu/CodeSourcery/Sourcery_G++/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/include/c++/4.4.1/iostream:39: fatal error: bits/c++config.h: No such file or directory
compilation terminated.
make: *** [main] Error 1

【问题讨论】:

【参考方案1】:

我遇到了同样的错误:

/usr/lib/gcc/x86_64-redhat-linux/4.6.3/../../../../include/c++/4.6.3/iostream:39: error: bits/c++config.h: No such file or directory

在fedora 15中安装libstdc++-devel.x86_64 0:4.6.3-2.fc15后解决。

【讨论】:

【参考方案2】:

我收到了 Codesourcery 团队的回复。这个问题是因为我没有安装所有的附加组件。附加组件的安装是一个非常简单的步骤,如果您在 CodeSourcery 的 Eclipse 环境中运行,那么您只需转到帮助 > 安装新软件,然后它就非常简单了(更多信息请遵循获取的第 3 章-入门指南)。

安装插件后,我不再收到致命错误:bits/c++config.h:没有此类文件或目录编译终止。 (阅读第 3 章中有关编译器选项的更多信息)

【讨论】:

以上是关于CodeSourcery 给出编译错误:缺少位/c++config.h的主要内容,如果未能解决你的问题,请参考以下文章

Windows 上的 QtCreator 使用 CodeSourcery 工具链为 Linux ARM 交叉编译

vs2008编译错误:error C2146: 语法错误 : 缺少“;”(在标识符“name”的前面)

解决缺少sql头文件编译错误

编译 C++ Thrift 代码以连接 Cassandra 会导致以下错误。我们在这里缺少啥?

C++ MSVC dll 编译错误缺少类型说明符和重新定义

尝试编译C扩展模块时缺少Python.h