【发布时间】:2012-11-04 15:30:45
【问题描述】:
在 Microsoft Visual Studio 2010 中,可以创建具有多个项目的解决方案并设置项目之间的依赖关系。我试图弄清楚是否可以通过 NDK 使用 Eclipse 完成同样的事情。更具体地说,我想知道是否可以在普通的Android项目中创建可以引用Android库项目中的C头文件的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 调用,并通过 #include "Nv_Socket.h" 进行调用,这不是 Socket_Server 的一部分:
jni/SocketTestServer.cpp:1:23: fatal error: Nv_Socket.h: No such file or directory
compilation terminated.
【问题讨论】:
-
仍不清楚:“
Sockets包含所有需要进行套接字 I/O 的 C 头文件/源文件。” ...“在Socket_Server中,有一个名为 SocketTestServer.cpp 的文件。”。那么哪里只有java代码,哪里只有C? -
我其实有3个项目,Socket_Client、Socket_Server和Sockets。在 Socket_Client 和 Socket_Server 中,我有一份来自 Sockets JNI 文件夹的所有 C 源代码的副本。我可以在我的 Nexus 7 上运行 Socket_Server 和 Socket_Client 应用程序就好了。问题是我不想在客户端/服务器项目中拥有相同 C 源文件的副本,因为它们之间的唯一区别是 test.cpp 文件对相同的源代码库进行 API 调用。我正在尝试创建项目依赖项,就像在 Visual Studio 2010 中完成的那样。
-
所以..如果我有一个 test.cpp 文件,其中 #include 来自 Sockets 的一些头文件,我如何在 Eclipse 中设置该项目依赖项?
-
我修正了我的回复。为什么要将其实现为 NDK?你有良好的 java API 并使用 jar 文件来防止重复。我仅出于性能原因使用
NDK(从文件读取/写入/从文件中读取,从 url 获取/发布......) -
So..if I have a test.cpp file that #include some header files from Sockets, how do I set up that project dependency in Eclipse?来自我的经验。你不能通过同一个标头集成 2 个 Android 项目
标签: android android-ndk library-project