【问题标题】:GCC - fatal error in standard libs includingGCC - 标准库中的致命错误,包括
【发布时间】:2012-01-20 08:11:15
【问题描述】:

我正在编译一个包含一些标准库的代码,如 new、cmath 等...... 但 gcc 无法包含它们。

我使用 python3.2 distutils 来构建它。

它给了我这个错误:gcc fatal error: cmath: No such file or directory。我google了一下,可能是我的gcc配置不好,必须重新安装。

我尝试在我的 archlinux 电脑上重新安装 glibc 和 gcc 及其所有依赖项:sudo pacman -S --recursive glibc gcc 但没有任何改变。

可能是什么问题?

【问题讨论】:

  • 在构建 C++ 程序时,应该使用g++ 而不是gccg++ 为 C++ 正确设置包含路径,并确保正确的库和运行时与程序链接。
  • 好的,问题是我刚刚将 swig 接口文件添加到 setup.py 源中,而没有带有 -c++ 选项的 swig_opts,因此 swig 正在生成一个 module.c 文件,gcc 将其编译为 C 源.所以我添加了swig_opts=['-c++', '-py3'],它运行正常:)

标签: c++ c gcc glibc archlinux


【解决方案1】:

<cmath> 不是标准的 C 标头。它是一个 C++ 头文件。使用g++ 而不是gcc

【讨论】:

    【解决方案2】:

    通常 cmath 在 c++(g++) 的包含路径中,而不是 gcc。

    1. 在 gcc 中使用 #include 'math.h';或
    2. 在 g++ 中使用 #include 'cmath'

    您可以通过以下方式检查 gcc 的默认包含路径

    echo | gcc -v -E -
    

    【讨论】:

      猜你喜欢
      • 2017-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多