0

こんにちは、ネイティブ コードでビルド済みのライブラリを使用する必要があるため、例に従ってライブラリを ndk/samples/native-activity に配置しています。以下が構造です。このエラーについて誰か助けてください。dsplink.h が見つかりません。前もって感謝します :)

ディレクトリ構造

Android.mk

エラー

こんにちは-jni.c

4

4 に答える 4

1

ウラジミールは正しい軌道に乗っていたと思います。ただし、静的ライブラリは実行ごとに削除されるため、obj フォルダーに保持しないでください。代わりに、jni/modules/precompiled などを作成してそこに配置します...

あなたが持っているのは、プリコンパイルされた静的ライブラリです。それが .a ファイルです。最終的なバイナリになるように、コンパイル プロセスに追加することを意図しています。だからあなたが持っているべきものは次のとおりです:

#
# DSPLINK
#
include $(CLEAR_VARS)
LOCAL_MODULE    := dsplink
LOCAL_SRC_FILES  := [path-to-prebuilt-lib]/libdsplink.a
LOCAL_EXPORT_C_INCLUDES := [path-to-dsplink-headers-folder]
include $(PREBUILT_STATIC_LIBRARY)

また、プロジェクトのリンカーに含めることを忘れないでください..メイン共有ライブラリのこのセクションの下に、次の行を追加します。

LOCAL_STATIC_LIBRARIES := dsplink
于 2012-06-19T07:51:18.297 に答える
0

Cファイルにはdsplink.hファイルが含まれています。LOCAL_C_INCLUDESお持ちの場合は、このファイルへのフルパスを次のように追加する必要があります。

LOCAL_MODULE     := jnihello
LOCAL_C_INCLUDES := $(LOCAL_PATH)/inlcudes

ちなみに、dsplink.aファイルが事前に作成されている場合は、 libs /フォルダーの外に置いておくと、make clean削除されないので安全です。あなたは次のようなものを使うことができます

LOCAL_LDFLAGS += $(LOCAL_PATH)/prebuilt/dsplink.a

リンカがファイルを見つけるのを助けるため。

于 2012-06-17T14:16:24.283 に答える
0

libmath-prebuilt.so は、buyya_read.c で使用されるいくつかの関数を含むビルド済みライブラリです。最初に ndk-build を使用して libmath-prebuilt.so を生成し、elcipse の ur プロジェクトで buyya_read.c が保持されている jni フォルダーに保持します。

Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := math-prebuilt
LOCAL_SRC_FILES = libmath-prebuilt.so
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE    := buyya_read
LOCAL_SRC_FILES := buyya_read.c
LOCAL_LDLIBS    := -llog
LOCAL_SHARED_LIBRARIES := math-prebuilt
include $(BUILD_SHARED_LIBRARY)

下の画像にプロジェクトのディレクトリ構造が表示されます。 プロジェクトディレクトリ構造

于 2016-06-22T07:01:05.417 に答える
-1

プロジェクトdsplinkの前に、Android.mk でビルド済みライブラリを定義する必要があります。jnihello

#
# DSPLINK
#
include $(CLEAR_VARS)
LOCAL_MODULE    := dsplink
LOCAL_SRC_FILES  := [path]/libs/armeabi/libdsplink.so
LOCAL_EXPORT_C_INCLUDES := [directory-with-dsplink.h-file]
include $(PREBUILT_STATIC_LIBRARY)
...
# jnihello
于 2012-06-15T08:47:49.180 に答える