【问题标题】:Debugging the error "gcc: error: x86_64-linux-gnu-gcc: No such file or directory"调试错误“gcc: error: x86_64-linux-gnu-gcc: No such file or directory”
【发布时间】:2014-04-29 14:13:53
【问题描述】:

我正在尝试构建: https://github.com/kanzure/nanoengineer

但它看起来像错误:

gcc -DHAVE_CONFIG_H -I. -I../.. -I/usr/include/python2.7   -std=c99 x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -MT libstructcompare_a-structcompare.o -MD -MP -MF .deps/libstructcompare_a-structcompare.Tpo -c -o libstructcompare_a-structcompare.o `test -f 'structcompare.c' || echo './'`structcompare.c
gcc: error: x86_64-linux-gnu-gcc: No such file or directory

x86_64-linux-gnu-gcc 肯定存在于 /usr/bin 中(这是一个符号链接),并且目标也肯定存在。在我看来,Makefile 没有正确生成,也许在指定 x86_64-linux-gnu-gcc 之前应该传递一个标志?我也不确定指定 x86_64-linux-gnu-gcc 应该完成什么。

最后,这个 makefile 是由 configure 生成的,所以一旦我们缩小了错误的原因,我就必须弄清楚要修改哪些文件才能解决这个问题。 (我自己是一个 CMake 类型的人,但我当然没有为这个项目选择构建系统。)我的操作系统是 Debian。

我也尝试过构建这个分支: https://github.com/kanzure/nanoengineer/branches/kirka-updates

如果您可以尝试在您的系统上构建它,我将不胜感激!谢谢!

【问题讨论】:

  • 你安装了python-dev包吗?
  • 您是如何调用configure 脚本的?看起来您向 CXXFLAGS 或其他内容添加了垃圾。 x86_64-linux-gnu-gcc 出现在 Makefile 中的什么位置?
  • 是的,python-dev 已安装。我用“./configure”调用了配置。我为 x86_64-linux-gnu-gcc 搜索了整个 449MB (!) 源代码树,但没有结果。我还尝试在另一台机器上构建,但我最终得到了完全相同的错误。我很感激帮助。谢谢!!
  • 猫裤,请运行 gcc 命令并添加 -v 选项并发布其输出。实际上发布的命令中的错误是gcc ...options... x86_64-linux-gnu-gcc ..options..,而gcc尝试使用x86_64-linux-gnu-gcc作为输入文件,这是错误的。所以,你应该调试 Makefile。
  • @AndyG 这就是错误的来源 - 正在运行的命令是 gcc ... x86_64-linux-gnu-gcc ... - gcc 没有看到 x86_64-linux-gnu-gcc 参数作为选项/标志/等,所以假设它是它应该编译的文件。由于它没有附加路径,它假定文件应该在当前目录中,没有找到它,并产生错误消息。为什么该命令行是这样的,尽管configure 或其运行方式或Makefile 存在问题 - 列出的命令没有意义。

标签: python gcc makefile autotools


【解决方案1】:

经过大量工作,我能够在 Ubuntu 12.04 x86 和 Debian 7.4 x86_64 上构建它。我在下面写了一个指南。您可以尝试关注它以查看是否可以解决问题吗?

如果不是,请告诉我你卡在哪里了。

安装通用依赖项

sudo apt-get install build-essential autoconf libtool pkg-config python-opengl python-imaging python-pyrex python-pyside.qtopengl idle-python2.7 qt4-dev-tools qt4-designer libqtgui4 libqtcore4 libqt4-xml libqt4-test libqt4-script libqt4-network libqt4-dbus python-qt4 python-qt4-gl libgle3 python-dev

安装 NumArray 1.5.2

wget http://goo.gl/6gL0q3 -O numarray-1.5.2.tgz
tar xfvz numarray-1.5.2.tgz
cd numarray-1.5.2
sudo python setup.py install

安装 Numeric 23.8

wget http://goo.gl/PxaHFW -O numeric-23.8.tgz
tar xfvz numeric-23.8.tgz
cd Numeric-23.8
sudo python setup.py install

安装 HDF5 1.6.5

wget ftp://ftp.hdfgroup.org/HDF5/releases/hdf5-1.6/hdf5-1.6.5.tar.gz
tar xfvz hdf5-1.6.5.tar.gz
cd hdf5-1.6.5
./configure --prefix=/usr/local
sudo make 
sudo make install

安装 Nanoengineer

git clone https://github.com/kanzure/nanoengineer.git
cd nanoengineer
./bootstrap
./configure
make
sudo make install

疑难解答

在 Debian Jessie 上,您会收到 cantpants 提到的错误消息。自动制作脚本中似乎存在问题。 x86_64-linux-gnu-gcc 插入到 CFLAGS 中,gcc 会将其解释为源文件之一的名称。作为一种解决方法,让我们创建一个具有该名称的空文件。空,这样它就不会改变程序和那个名字,以便编译器选择它。从克隆的 nanoengineer 目录中,运行此命令以使 gcc 快乐(这是一个 hack,是的,但它确实有效)...

touch sim/src/x86_64-linux-gnu-gcc

如果您在尝试编译 HDF5 时收到错误消息,内容如下:“错误:调用带有属性错误声明的 '__open_missing_mode':在第二个参数中使用 O_CREAT 打开需要 3 个参数”,然后修改文件 perform/zip_perf .c,第 548 行如下所示,然后重新运行 make...

output = open(filename, O_RDWR | O_CREAT, S_IRUSR|S_IWUSR);

如果您在构建 Nanoengineer 时收到关于 Numeric/arrayobject.h 的错误消息,请尝试运行

export CPPFLAGS=-I/usr/local/include/python2.7
./configure
make
sudo make install

如果您收到类似于“TRACE_PREFIX undeclared”的错误消息,请将文件 sim/src/simhelp.c 的第 38 到 41 行修改为如下所示并重新运行 make:

#ifdef DISTUTILS
static char tracePrefix[] = "";
#else
static char tracePrefix[] = "";

如果您在尝试启动 NanoEngineer-1 时收到错误消息,其中提到类似“无法导入名称 GL_ARRAY_BUFFER_ARB”的内容,请修改以下文件中的行

/usr/local/bin/NanoEngineer1_0.9.2.app/program/graphics/drawing/setup_draw.py
/usr/local/bin/NanoEngineer1_0.9.2.app/program/graphics/drawing/GLPrimitiveBuffer.py
/usr/local/bin/NanoEngineer1_0.9.2.app/program/prototype/test_drawing.py

看起来像这样:

from OpenGL.GL import GL_ARRAY_BUFFER_ARB
from OpenGL.GL import GL_ELEMENT_ARRAY_BUFFER_ARB

看起来像这样:

from OpenGL.GL.ARB.vertex_buffer_object import GL_ARRAY_BUFFER_AR
from OpenGL.GL.ARB.vertex_buffer_object import GL_ELEMENT_ARRAY_BUFFER_ARB

我还发现了一个额外的故障排除文本文件已被删除,但你可以找到它here

【讨论】:

  • 看起来我还在那里,我从未删除它:diyhpl.us/~bryan/irc/nanoengineer/kirka_NE1_work_log.txt
  • 谢谢,我一定是访问了错误的 URL。
  • 非常感谢您在这里的工作。我通过apt安装了“libhdf5-dev”,我删除了它并按照您描述的方式通过源安装了HDF5 1.6.5。但是,我仍然收到相同的错误: gcc: error: x86_64-linux-gnu-gcc: No such file or directory。我正在运行 Debian jessie。我想知道这是否是这里的问题。 (我最初选择 jessie over 7 是因为 7 没有我的 wifi 卡驱动程序。)谢谢!
  • 酷。谢谢,让我试试 Jessie,看看我能不能重现。您是否尝试过从头开始复制 nanoengineer 目录的新克隆、第一步中描述的所有包,然后运行引导程序,然后进行配置?
  • 好的,我能够加载 Debian Jessie 并重现该问题。我对 automake 和 m4 相当生疏,似乎某处有错误导致错误的 x86_64-linux-gnu-gcc 出现在编译命令中。这是一个解决方法,它可以让我克服错误并编译所有内容。从 nanoengineer 目录运行 touch src/sim/x86_64-linux-gnu-gcc ...这会给 gcc 一个空文件,并使其关闭。这是一个令人讨厌的 hack,但它确实有效 :) 我会继续挖掘,看看是否能找到修复 automake 系统的方法。
【解决方案2】:

你只需要输入这个命令:

sudo apt install python-dev gcc

【讨论】:

  • 这对我不起作用,我需要按照 Stephan Kristyn 的建议安装 python-dev。
  • 谢谢,这是为我做的。单独的 python-dev 并没有解决它。
  • sudo apt-get install python-dev gcc
  • 最佳答案恕我直言。没有其他垃圾
  • 谢谢,为mysqlclient工作。
【解决方案3】:

错误可能是由于缺少几个包之一。下面的命令将安装几个包,如 g++、gcc 等。

sudo apt-get install build-essential

【讨论】:

  • 在运行pip install mysql-python 时搜索多个谷歌结果页面以查找与此相关的错误后,这解决了我的问题
  • 帮我安装了 fbprophet
【解决方案4】:
apt-get install python-dev

...为我解决了问题。

【讨论】:

  • 如果您不自动安装推荐的软件包,您也需要apt install gcc
  • 对于python 3,sudo apt-get install python3-dev
【解决方案5】:

sudo apt-get -y install python-software-properties && \
sudo apt-get -y install software-properties-common && \
sudo apt-get -y install gcc make build-essential libssl-dev libffi-dev python-dev

如果你特别想安装 python 的加密库或依赖于它的 python 库(例如 ansible),你需要 libssl-dev 和 libffi-dev

【讨论】:

  • 谢谢你 - 我没有安装 Autotools 而是 ReviewBoard,它需要 libssl-dev 和 libffi-dev 包来完成pip install 步骤
【解决方案6】:

对我有用的是: sudo apt-get install python3-dev build-essential gcc libpq-dev

【讨论】:

    【解决方案7】:

    也许你应该安装python3-pip
    它对我有用。

    sudo apt install python3-pip
    

    【讨论】:

      【解决方案8】:

      我在尝试构建一个简单的 c 扩展模块以在 Python 中运行时收到错误“gcc: error: x86_64-linux-gnu-gcc: No such file or directory”。我尝试了以上所有方法均无济于事,终于意识到我的module.c代码中有错误!所以我认为添加这一点会很有帮助,如果您收到此错误消息但您已正确安装了 python-dev 和所有内容,您应该在代码中查找问题。

      【讨论】:

      • 我不确定这是否能回答所提出的问题。此外,其他比您更完整的答案已经发布。
      【解决方案9】:

      试试sudo apt-get -y install unixodbc-dev它对我有用

      【讨论】:

      • 来自debian package page of unixodbc-dev:“除非您打算开发使用 ODBC 的 C 语言应用程序或从源代码编译使用 ODBC 的应用程序,否则您不需要安装此软件包”。我快速搜索了nanoengineer的源代码,但没有发现对ODBC的依赖。
      【解决方案10】:

      我在安装django.cryptography 时遇到了同样的问题(错误消息)。

      对我有帮助的步骤:

      1. 升级点子(作为来自cryptography的建议: pip3 install --upgrade pip
      2. 安装cryptography,因为它是requirements for django.cryptography 之一,在我的情况下被遗漏了:pip3 install cryptography
      3. 最后错误消失了,我可以安装 django.cryptography 并开始使用加密字段。

      【讨论】:

        猜你喜欢
        • 2022-01-13
        • 1970-01-01
        • 2018-04-24
        • 1970-01-01
        • 2016-11-01
        • 2022-07-11
        • 2016-01-05
        • 2023-01-22
        • 2020-03-19
        相关资源
        最近更新 更多