2012-04-15 21 views
0

アンドロイドデバイス用にビルドしようとしていますが、実際のSDK/NDKはありません。 libc.soを持つ通常のAndroidデバイスとは異なり、これはシンボリックリンクlibc.so.6 - > libc-2.7.soを持っています。 通常のアンドロイドNDK-x86でビルドした場合、私の共有ライブラリ(readelf -dによって報告されたもの)は、デバイスに存在しないlibc.soからインポートされます。android/linux(x86)でlibcにリンクするlibc.soとlibc.so.6

番号付けについては、gcc/ldは単に-lcと言うとlibc.so.6へのリンクをどのように知っていますか?

具体的には、このデバイスはAndroidのgoogle TVボックス(Logitechの改訂版)です。通常のAndroidとは少し違っているようですが、私の推測では、これは弱い生体を使わず、通常のlibc、それは通常のLinuxに近いと思われます。

したがって、通常のAndroid-x86ツールチェーンを使用して、異なるlibcを持つGoogle TVデバイスのコードを生成できますか?代わりにlibc.so.6にリンクすることをどのように知っていますか(私はリンクするライブラリを教えてください)。リンク時にこれらのライブラリを単純にハードコードしようとしましたが、実行時に問題が発生します(互換性のないヘッダーとライブラリを使用していたため、記号がありません)。その番号は何

+0

(GoogleTVはglibc、btwを使用していますが、通常のAndroidツールチェーンではbionicが使用されていますが、ライブラリの名前は唯一の挑戦ではありません) –

答えて

0

あなたは外部ライブラリのバージョンhereについて読むことができます。

gcc/ldは、単に-lcと言うと、libc.so.6へのリンクをどのように知っていますか?

GROUP (/lib/libc.so.6 /usr/lib/libc_nonshared.a 
     AS_NEEDED (/lib/ld-linux-x86-64.so.2)) 
ので

が、私はGoogleのテレビデバイス用のコードを生成するために、定期的なアンドロイド-x86のツールチェーンを使用することができます。

のglibcとLinuxの

libc.soのようなものを含む、実際にはリンカスクリプトですそれは異なるlibcを持っていますか?

いいえ、あなたは、このためにクロス -compilerを必要としています。クロスコンパイラは、あるOS(ここでは普通のLinux)上で動作しますが、他の場所(Google V上)で実行される実行ファイルを作成します。

GoogleTV用のSDKをダウンロードしてください。このSDKには、このようなクロスコンパイラと必要なライブラリが含まれています。

+0

いいえ、それはありません。まだGoogleテレビ。 –

関連する問題