1. ホーム
  2. python

[解決済み] エラー "gcc: error: x86_64-linux-gnu-gcc: No such file or directory" をデバッグする。

2022-02-11 08:07:40

質問

ビルドしようとしています。 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派ですが、もちろんこのプロジェクトのためにビルドシステムを選択したわけではありません)。私のOSはDebianです。

このブランチもビルドしてみました。 https://github.com/kanzure/nanoengineer/branches/kirka-updates

もし、あなたのシステムでこれをビルドすることを試せるなら、私は非常に感謝します。ありがとうございます!

解決方法は?

結構な量の作業の後、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では、cant pantsが言及したエラーメッセージが表示されます。 automakeのスクリプトに問題があるようです。 x86_64-linux-gnu-gcc の中に挿入されます。 CFLAGSgcc は、これをソースファイルの1つの名前として解釈します。回避策として、その名前で空のファイルを作ってみましょう。プログラムを変更しないように空にして、コンパイラがそれを拾えるように、まさにその名前を付けます。クローンしたnanoengineerディレクトリから、このコマンドを実行すると、gccが喜びます(ハックですが、ちゃんと動きます)...

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

HDF5をコンパイルしようとしたときに、次のようなエラーメッセージが表示された場合: "error: call to '__open_missing_mode' with attribute error: open with O_CREAT in second argument needs 3 arguments" ファイル perform/zip_perf.c, line 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 の起動時に "cannot import name 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

また、削除されてしまいましたが、トラブルシューティングのテキストファイルが追加で見つかりました。 こちら