3

g729コーデックのライブラリファイルをビルドしようとしています。このコーデックのソースがあり、AndroidNDKを使用してビルドしようとしています。
ほとんどすべてのオブジェクトファイルがビルドされますが、ついにこのエラーが発生します。
しかし、私はこのエラーで立ち往生しています。誰かがこのエラーの意味を説明できますか、これを解決するにはどうすればよいですか?

./obj/local/armeabi-v7a/objs/g729_jni/g729/cod_ld8a.o: In function `Coder_ld8a':
/root/g729/jni/g729/cod_ld8a.c:267: undefined reference to `Pitch_ol_fast'
/root/g729/jni/g729/cod_ld8a.c:325: undefined reference to `Pitch_fr3_fast'
/root/g729/jni/g729/cod_ld8a.c:328: undefined reference to `Enc_lag3'
/root/g729/jni/g729/cod_ld8a.c:344: undefined reference to `G_pitch'
collect2: ld returned 1 exit status

ありがとう

編集 私はこのエラーを解決しましたが、それは実行可能ですか?この行をAndroid.mkに追加しました

LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
4

1 に答える 1

2

ソースをコンパイルしていて、結果のライブラリをリンクしたい場合は、Android.mk ファイルで次の変数のいずれかを使用できます。

LOCAL_STATIC_LIBRARIES: このモジュールにリンクする必要がある静的ライブラリ モジュール (BUILD_STATIC_LIBRARY でビルド) のリスト。これは、共有ライブラリ モジュールでのみ意味があります。

LOCAL_SHARED_LIBRARIES:このモジュールが実行時に依存する共有ライブラリモジュールのリスト。これは、リンク時に、生成されたファイルに対応する情報を埋め込むために必要です。

詳細については、ndk フォルダーにある android NDK のドキュメントを参照してください。

それ以外の場合、ビルド済みのライブラリをリンクする必要がある場合は、Android NDK のドキュメントに、結果を達成する方法を説明するセクションがあります。これらのドキュメントのオンライン バージョンもここにあります(PREBUILTS)

更新 09/01/2017

ビルド済みライブラリに関するドキュメントは、ここにあります

于 2012-07-23T15:01:39.627 に答える