y-otuki
2014年8月7日 19時54分
大槻です
いつもお世話になってます。
現在Rubyの拡張ライブラリを作成しています。
ATDE5上での実行は確認できたのですが。
Armadillo-840側にはruby2.0.0がインストールされていて 下記エラーがでて、
クロスコンパイル(リンク時)に-lruby2.0.0が見つからずでつまずいています。
atmark@atde5:~/src/sample/rubylib$ make -f ARM_Makefilelinking shared-object sharemem.so
/usr/lib/gcc/arm-linux-gnueabihf/4.6/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lruby-2.0.0
collect2: ld returned 1 exit status
make: *** [sharemem.so] エラー 1
386用とARM用のmakefileを添付します。
環境
開発環境:ATDE5
ruby1.9.1
ターゲット:Armadillo-840(atmark-dist-20140602)
ruby2.0.0
このエラーの対策などについて、ご存知の方がいましたらご教授 お願いします。
以上、よろしくお願いいたします。
ファイル | ファイルの説明 |
---|---|
ARM_Makefile.ZIP | 386用とARM用のmakefile |
コメント
y-otuki
大岡 殿
大槻です。
ご教授、ありがとうございます。
ご指摘どおり、Makefileを見なおして無事解決することが出来ました。
その際のMakefileを添付しておきます。
以上、 ありがとうございました。
ファイル | ファイルの説明 |
---|---|
ARM_Makefile.ZIP |
tetsuya.ooka
2014年8月8日 9時13分
ロームの大岡と申します。
もしかするとARM用Makefileはライブラリの検索パスが適切に設定されてないのではないでしょうか?
リンクしている箇所を確認すると、
↑ライブラリ検索パスはLIBPATHで指定しています。
LIBPATHがどうなっているか辿ると下記のようになっています。
DESTDIRは設定されていないようなので、ライブラリ検索パスはカレントディレクトリと/usr/libになっています。
しかしARM_Makefileの内容からすると、ARM用のrubyライブラリは/home/atmark/atmark-dist-20140602/user/ruby/ruby-2.0.0-p451/ 以下のどこかにあるのではないでしょうか?
そこがLIBPATHに追加されるようにMakefileを設定してみてはどうでしょうか。