私は文字列を使用しました。hヘッダファイルをarm-gccコンパイラを使用してコンパイルするcコードに組み込み、生成された実行ファイルはアンドロイドデバイス上で実行されます。 実行ファイルをデバイスにプッシュして実行すると、リンケージエラーが表示されました。 そのようなデバイスでstring.hの関数を使用するにはどうすればよいですか? これらのヘッダーファイルはハードウェア固有のものですか?
回答:
回答№1は1ARM EABIによると、ANSI C-ライブラリは、ライブラリがどこから来るのかとは無関係にコンパイラによって提供されるべきです。クロスコンパイルを行う場合は、 string.h
ネイティブシステムからではなく、コンパイラに付属しています。あなたはどのリンケージエラーを得ましたか?
それはのように聞こえる strstr
の libc
それは奇妙に聞こえて、私はそれについての説明はしていません。あなたがデバイス上のライブラリにアクセスできる場合、私は例えば objdump -t
それが定義すれば strstr
.
回答№2の場合は0
そのようなデバイスでstring.hの関数を使用するにはどうすればよいですか?
それは過去に私のために働いた。
これらのヘッダーファイルはハードウェア固有のものですか?
NDKツールでは、アーキテクチャとプラットフォーム(Android 8、Android 14など)固有のものです。
NDKに重大なバグがないかぎり(おそらくそう思わない)、あなたのビルドをもう一度チェックしたいと思うかもしれません。