[Armadillo:04436] Re: クロスコンパイルが通らない

mizo email@hidden
2009年 7月 23日 (木) 17:22:52 JST


溝渕です。

宮崎健吾 wrote:
> それで今、VM上でクロスコンパイル環境(atde2.0)を構築し「spcaview-
> 20051212」のライブラリをクロスコンパイルかけていますがエラーが発生します。
> 
> Makefileはatmark-dist開発者ガイド(ver1.0.6)の10章を参考に
> arm-linux-gcc -L../atmark-dist-20090318/lib -o spcacat spcacat.o
> spcav4l.o utils.o picture.o pargpio.o encoder.o huffman.o marker.o
> quant.o avilib.o -lc -lgcc -lpthread
> のように編集しております。
> 
> collect2: ld returned 1 exit status
> make: *** [spcacat] エラー 1
> がエラー表示になります。特にエラーと書かれた箇所はない?ように見えます。

エラーログがあると、何を実行しようとしてエラーになったのかはわかります。
多分、

gcc -O2 -DLINUX  -o spcaserv server.o spcav4l.o utils.o tcputils.o
pargpio.o encoder.o huffman.o marker.o quant.o -lm  -lpthread
/usr/bin/ld: server.o: Relocations in generic ELF (EM: 40)
server.o: could not read symbols: 間違った形式のファイル
collect2: ld returned 1 exit status

と表示されていたのではないでしょうか?arm用のクロスコンパイラで生成され
たオブジェクトファイルをホストPC用のコンパイラでリンクする際にエラーに
なっているようですね。


CC=gcc
CPP=g++
を
CC=arm-linux-gnu-gcc
CPP=arm-linux-gnu-g++
に修正して、コマンド"gcc"と直接指定している部分を$(CC)に修正することでビ
ルドできることは確認できました。



armadillo メーリングリストの案内