物好き者

物好き者が行ったことを載せています。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

PageTop

OpenWRTベースでのクロスコンパイル3

OpenWRTベースでのクロスコンパイル2 でtinyproxyのクロスコンパイルがうまくできませんでした。

tinyproxyの場合は、 ./configure でmakeファイルを作成できますが、delegateでは ./configure が無いため、makeファイルは手で修正するしかありませんので、アーキテクチャの指定ができないと思いました。

調べたところ、makeコマンドにアーキテクチャを指定できることがわかりました。
yaroespage::weblog 第16話「こんどこそ、ちゃんとやります、クロス・コンパイルです」
delegateのmakeにARCHオプションをつけたところ、エラーが発生しました。
make ARCH=mips
mips-linux-gcc -DMKMKMK -DDEFCC=\"mips-linux-gcc\" -I../gen -I../include -L../lib mkmkmk.c -o mkmkmk.exe
"./mkmkmk.exe" -mkmkmk "mips-linux-gcc" -I../gen -I../include -L../lib maker/mkmake.c -o mkmake.exe
/bin/sh: ./mkmkmk.exe: cannot execute binary file
make: *** [mkmake.exe] エラー 126

delegateのコンパイルは、まずmkmkmk.exeとmkmake.exeをコンパイルして、それを使ってdelegateをコンパイルしているようです。
このため、mkmkmk.exeとmkmake.exeをクロスコンパイルしてしまうと、これらをホストマシンで動作させされてないので、delegate自体のコンパイルができなくなってしまいます。
mkmkmk.exeとmkmake.exeとdelegateのコンパイルを別に行う必要がありそうです。

調べたところ、下記の情報がありました。
Article delegate/12408 (04May19) DeleGate のクロスコンパイル (Re: ザウルスでの実行について)

これによると、やはり別にコンパイルする必要があり、コンパイル用のスクリプトも記載されていますので、これを使ってコンパイルしてみることにします。


下記にOpenWRTのクロスコンパイルの情報がありました。
hacking_with_the_wrt.pdf
この中の Cross Compiling Applications には、クロスコンパイル環境作成時には OpenWRT SDK を選択することが書かれています。

また、アプリケーションのクロスコンパイルに関しても書かれていてます。
ソースからコンパイルするのは大変(意訳)と書かれています。
CrossTool を使う方法があるそうです。
SDKを使ってmakeする場合の手順として、次のことも書かれています。
 CC=mipsel-linux-uclibc-gcc CFLAGS=” -s” ./configure --host=mipsel
 make

これらを参考に再度挑戦することにします。

スポンサーサイト

PageTop

コメント


管理者にだけ表示を許可する
 

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。