ソースからビルドしてsoファイルを作るのではなく、
すでにコンパイルされた.aファイルや.oファイルがある状態から、
.soファイルを作るにはどのようなコマンドがあるのでしょうか?
OSはmac / linuxです。
ソースからsoファイルにするのは「gcc -shared」でいけるという事は調べてわかりました。
すいませんc++初心者なんで分かってないです。
最終的にはAndroidに上記のコマンドをインストールして、
Androidの実機上で.oファイル、.aファイルからsoファイルを生成するのが目的です。
Android実機上に入れるので、gccコマンドだとインストールが大変そうなので、
もっと依存関係があまりないシンプルなコマンドがあればいいかなとは思っています。
soファイルの作り方
Re: soファイルの作り方
試してないですが検索したら出てきた方法
http://goo.gl/F7zU6v
http://goo.gl/F7zU6v
Re: soファイルの作り方
Linuxのリンカを呼び出すのはldコマンドですが、実体はディストリビューションに依存します。
-
Androider
Re: soファイルの作り方
ar -x libaaa.so
ってしましたが、
ルートディレクトリが指定されていないため、
/387
とかルートに解凍されてしまいます。
arコマンドを発行したディレクトリに解凍して欲しかったのですが、
ar -x で出力先ディレクトリって指定できるのでしょうか?
ってしましたが、
ルートディレクトリが指定されていないため、
/387
とかルートに解凍されてしまいます。
arコマンドを発行したディレクトリに解凍して欲しかったのですが、
ar -x で出力先ディレクトリって指定できるのでしょうか?
Re: soファイルの作り方
arコマンドにディレクトリパスを扱う機能はないはずですが。
というかなぜarコマンドの対象がsoファイル?
というかなぜarコマンドの対象がsoファイル?
-
Androider
Re: soファイルの作り方
すいません.aファイルです。
以下のコマンドで中身を確認すると/(スラッシュ)が入っているので、
そのまま/(ルート・ディレクトリ)に解凍されようとしているのだと思います。
$ ar -t libbox2d.a
/208
/234
/261
/290
/310
/329
b2GearJoint.o/
b2Joint.o/
b2MouseJoint.o/
/348
b2PulleyJoint.o/
/368
b2RopeJoint.o/
b2WeldJoint.o/
b2WheelJoint.o/
b2Body.o/
/387
b2Fixture.o/
b2Island.o/
以下のコマンドで中身を確認すると/(スラッシュ)が入っているので、
そのまま/(ルート・ディレクトリ)に解凍されようとしているのだと思います。
$ ar -t libbox2d.a
/208
/234
/261
/290
/310
/329
b2GearJoint.o/
b2Joint.o/
b2MouseJoint.o/
/348
b2PulleyJoint.o/
/368
b2RopeJoint.o/
b2WeldJoint.o/
b2WheelJoint.o/
b2Body.o/
/387
b2Fixture.o/
b2Island.o/
Re: soファイルの作り方
libbox2d.aに日本語とか使ったファイル名のファイルが含まれていませんか?
多言語対応のarコマンドを使う必要があるのではないかと。
多言語対応のarコマンドを使う必要があるのではないかと。