私は最近、Linux で関数 clock_gettime() を利用する C でプロジェクトを開発しました。私の Ubuntu デスクトップでのこのリンクは、リンカー フラグを使用して実現されます。
gcc -lrt foo.c
以下の投稿で、自分のプロジェクトを Android 用にクロスコンパイルできることを読んで興奮しました。
http://benno.id.au/blog/2007/11/13/android-native-apps
次のコマンドを使用して、簡単なプロジェクトでこれを試しました。
arm-linux-gnueabi-gcc -static foo.c -o foo
コマンドではなく:
arm-none-linux-gnueabi-gcc -static foo.c -o foo
リンクで参照されており、実際には正常にコンパイルおよびリンクされますが、clock_gettime() とリンクが必要なプロジェクトで試してみると、次のようになります。
-ltr
次のエラーで失敗します。
undefined reference to `clock_gettime'
-lrt で指定されたライブラリが Android 用に存在しないことを読み、人々が Android プロジェクトで clock_gettime() を使用していると主張する他の場所の投稿を見つけましたが、適切なライブラリを見つけることができませんでしたこのためにリンクします。ARMがこれを機能させるために何にリンクする必要があるか誰か教えてもらえますか?
または、Android で動作する代替案について他の提案をしてください。
デスクトップ Linux プロジェクトの既存のメイクファイルをできる限り活用することに非常に関心がありますが、可能であればクロスコンパイル ツール チェーンで動作するように再構成するので、それを可能にする提案があれば非常に高く評価されます。