web-dev-qa-db-fra.com

Débogage de l'erreur "gcc: erreur: x86_64-linux-gnu-gcc: aucun fichier ou répertoire de ce type"

J'essaie de construire: https://github.com/kanzure/nanoengineer

Mais il semble qu'il y ait des erreurs:

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 existe définitivement dans /usr/bin (c'est un lien symbolique) et la cible existe également. Il me semble que le Makefile n’a pas été généré correctement. Peut-être qu’un indicateur devrait être passé avant de spécifier x86_64-linux-gnu-gcc? Je ne sais pas non plus quoi spécifier x86_64-linux-gnu-gcc est censé accomplir.

Enfin, ce fichier makefile a été généré par configure. Par conséquent, une fois que nous aurons défini la cause de l'erreur, je devrai déterminer quels fichiers modifier, afin de résoudre ce problème. (Je suis un peu un gars de CMake moi-même, mais bien sûr, je n'ai pas choisi le système de construction pour ce projet.) Mon système d'exploitation est Debian.

J'ai aussi essayé de construire cette branche: https://github.com/kanzure/nanoengineer/branches/kirka-updates

Si vous pouviez essayer de construire cela sur votre système, je l'apprécierais grandement! Merci!

53
cat pants

Après beaucoup de travail, j'ai pu le faire sur Ubuntu 12.04 x86 et Debian 7.4 x86_64. J'ai écrit un guide ci-dessous. Pouvez-vous essayer de le suivre pour voir s'il résout le problème?

Si non s'il vous plaît laissez-moi savoir où vous êtes coincé.

Installez les dépendances communes

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

Installez 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

Installez 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

Installez 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

Installez Nanoengineer

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

Dépannage

Sur Debian Jessie, vous recevrez le message d'erreur mentionné ci-dessus. Il semble y avoir un problème dans les scripts automake. x86_64-linux-gnu-gcc est inséré dans CFLAGS et gcc interprétera cela comme le nom d’un des fichiers source. Pour contourner le problème, créons un fichier vide portant ce nom. Vide pour ne pas changer le programme et son nom afin que le compilateur le récupère. Depuis le répertoire nanoengineer cloné, lancez cette commande pour rendre gcc heureux (c'est un bidouillage oui, mais ça marche) ...

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

Si vous recevez un message d'erreur lorsque vous tentez de compiler HDF5 le long des lignes suivantes: "erreur: l'appel de '__open_missing_mode' déclaré avec l'attribut erreur: ouvert avec O_CREAT au deuxième argument nécessite 3 arguments", puis modifiez le fichier perform/Zip_perf.c, La ligne 548 ressemble à la suivante, puis réexécutez make ...

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

Si vous recevez un message d'erreur indiquant que Numeric/arrayobject.h n'a pas été détecté lors de la construction de Nanoengineer, essayez de l'exécuter.

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

Si vous recevez un message d'erreur semblable à "TRACE_PREFIX non déclaré", modifiez le fichier sim/src/simhelp.c lignes 38 à 41 pour qu'il ressemble à ceci et réexécutez make:

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

Si vous recevez un message d'erreur lors de la tentative de lancement de NanoEngineer-1 mentionnant quelque chose de similaire, "ne peut pas importer le nom GL_ARRAY_BUFFER_ARB", modifiez les lignes dans les fichiers suivants.

/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

qui ressemblent à ceci:

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

ressembler à ceci:

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

J'ai également trouvé un fichier texte de dépannage supplémentaire qui a été supprimé, mais vous pouvez le trouver ici

87
mdadm

vous avez juste besoin:

Sudo apt-get install gcc.
28
Liao Zhuodi

l'erreur peut être due à l'un des nombreux packages manquants. La commande ci-dessous installera plusieurs paquets comme g ++, gcc, etc.

Sudo apt-get install build-essential
25
StackUP
apt-get install python-dev

... résolu le problème pour moi.

21
meshfields

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

Vous avez besoin de libssl-dev et de libffi-dev si vous essayez notamment d'installer les bibliothèques de cryptographie de python ou python libs qui en dépendent (par exemple ansible)

7
Komu