0

Microsoft Visual Studio 2010では、複数のプロジェクトでソリューションを作成し、プロジェクト間の依存関係を設定することができます。NDKを介してEclipseを使用して同じことができるかどうかを調べようとしています。具体的には、AndroidライブラリプロジェクトのCヘッダーファイルを参照できる通常のAndroidプロジェクトでCソースファイルを作成できるかどうかを知りたい。

例えば:

Android library project: Sockets
Ordinary Android project: Socket_Server 

Sockets contains all the C header/source files that are needed to do socket I/O.
Socket_Server contains test code that makes calls to the functions that are defined in Sockets library project.  This test code requires a header file that contains the function declaration of all API calls.

プロジェクト間のライブラリの依存関係は、次の方法ですでに設定しています。

Properties > Android > Library > Add

Socket_Serverには、SocketTestServer.cppというファイルがあります。これにはテストコードが含まれていますが、ライブラリプロジェクトSocketsへのAPI呼び出しを行い、Socket_Serverの一部ではない#include"Nv_Socket.h"によって呼び出します。

jni/SocketTestServer.cpp:1:23: fatal error: Nv_Socket.h: No such file or directory
compilation terminated.
4

2 に答える 2

0

私はそれを解決したと思います。.soファイルを作成し、それを/ jniフォルダーに入れてから、.mkファイルで参照すると、コンパイルに問題はありません。

.mkファイル:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# Turn on C++ Exception handling
LOCAL_CPP_FEATURES += exceptions
LOCAL_CPPFLAGS += -fexceptions

# Load LogCat utility
LOCAL_LDLIBS := -llog

# C flags
LOCAL_CFLAGS    += -Wno-psabi -fpermissive

# Module name                  
LOCAL_MODULE    := ServerSockets

# C Header includes
LOCAL_C_INCLUDES := $(LOCAL_PATH)

# Source files
LOCAL_SRC_FILES := libSockets.so 

include $(PREBUILT_SHARED_LIBRARY)
于 2012-11-16T00:00:38.250 に答える
0

http://www.kandroid.org/ndk/docs/IMPORT-MODULE.htmlおよびhttp://www.kandroid.org/ndk/docs/PREBUILTS.htmlを参照してください。秘訣は、あるプロジェクトから別のプロジェクトにバイナリをコピーする必要がないことです。また、を使用LOCAL_EXPORT_C_INCLUDESすると、最新バージョンがで使用されることを保証できます

#include "Nv_Socket.h"
于 2012-11-16T02:41:23.343 に答える