現在、LinuxのCでソースコードのセットをコンパイルしました。出力は、オブジェクトファイルである*.oファイルです。これはおそらく画像圧縮を行います。これをAndroidで使用/テストしたいと思います。
これは可能ですか?私はAndroidNDK開発者側からのNDKの例のみを試しました。これをどのように行うことができるかについての参照に出くわしたことはありません。
よろしくお願いします、Perumal
現在、LinuxのCでソースコードのセットをコンパイルしました。出力は、オブジェクトファイルである*.oファイルです。これはおそらく画像圧縮を行います。これをAndroidで使用/テストしたいと思います。
これは可能ですか?私はAndroidNDK開発者側からのNDKの例のみを試しました。これをどのように行うことができるかについての参照に出くわしたことはありません。
よろしくお願いします、Perumal
オブジェクト ファイル(末尾が .o) には通常、不完全なコードが含まれています。たとえば、プログラムが何らかのライブラリを使用して画面に何かを出力したり、実行可能ファイルを生成したりする場合、コンパイル済みコード (.o ファイル) をライブラリとリンクする必要があります。使用されます。このリンクはリンカー(Linux の ld や Android の /system/bin/linker など) を使用して行います。あなたの場合、Jalfor が指摘しているように、gcc にリンカーを呼び出させる方が簡単です。
オブジェクト コード ファイル (*.o) は実行しません。それを実行可能ファイルに変換する必要があります。これを行うには、GCC を使用していると仮定してgcc file1.o file2.o -o executable
、file1.o と file2.o を含む 2 つのファイル プログラムを実行可能ファイルと呼ばれる実行可能ファイルに変換するコマンドを実行します。
答えはイエスです。ただし、Android で実行するにはかなりの量の作業を行う必要があります。
1) Linux でコンパイルしている場合は、オブジェクト ファイルまたは最終的な実行可能ファイルが x86 または AMD プロセッサ (ほとんど) 用にビルドされていることを意味します。しかし、ほとんどすべてのモバイル デバイスには、携帯電話で実行されている ARM プロセッサが搭載されています。したがって、実行可能ファイルがあっても、ARM Cpu 用にビルドされていない場合、ANdroid で実行することはできません。これは、Android NDK が正確に行うことです。
2) そのため、Android(ARM) 用に同じコードを再度ビルドする必要があります。そのためには、クロスコンパイラと、あなたが話しているオブジェクト ファイルのソース コードが必要です。
3) ソースコードが利用できる場合は、2 つのことをもう一度行うことができます。
最後に、ログインして結果を確認できます。ご不明な点がございましたら、お気軽にお問い合わせください。説明しても構いません。ありがとう..