soファイルの作り方

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Androider

soファイルの作り方

#1

投稿記事 by Androider » 12年前

ソースからビルドしてsoファイルを作るのではなく、
すでにコンパイルされた.aファイルや.oファイルがある状態から、
.soファイルを作るにはどのようなコマンドがあるのでしょうか?
OSはmac / linuxです。

ソースからsoファイルにするのは「gcc -shared」でいけるという事は調べてわかりました。

すいませんc++初心者なんで分かってないです。

最終的にはAndroidに上記のコマンドをインストールして、
Androidの実機上で.oファイル、.aファイルからsoファイルを生成するのが目的です。

Android実機上に入れるので、gccコマンドだとインストールが大変そうなので、
もっと依存関係があまりないシンプルなコマンドがあればいいかなとは思っています。

アバター
h2so5
副管理人
記事: 2212
登録日時: 15年前
住所: 東京
連絡を取る:

Re: soファイルの作り方

#2

投稿記事 by h2so5 » 12年前

試してないですが検索したら出てきた方法
http://goo.gl/F7zU6v

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: soファイルの作り方

#3

投稿記事 by ISLe » 12年前

Linuxのリンカを呼び出すのはldコマンドですが、実体はディストリビューションに依存します。

Androider

Re: soファイルの作り方

#4

投稿記事 by Androider » 12年前

ar -x libaaa.so
ってしましたが、
ルートディレクトリが指定されていないため、
/387
とかルートに解凍されてしまいます。
arコマンドを発行したディレクトリに解凍して欲しかったのですが、
ar -x で出力先ディレクトリって指定できるのでしょうか?

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: soファイルの作り方

#5

投稿記事 by ISLe » 12年前

arコマンドにディレクトリパスを扱う機能はないはずですが。
というかなぜarコマンドの対象がsoファイル?

Androider

Re: soファイルの作り方

#6

投稿記事 by Androider » 12年前

すいません.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/

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: soファイルの作り方

#7

投稿記事 by ISLe » 12年前

libbox2d.aに日本語とか使ったファイル名のファイルが含まれていませんか?
多言語対応のarコマンドを使う必要があるのではないかと。

閉鎖

“C言語何でも質問掲示板” へ戻る