如何创建一个带有多个静态库的JNI Android Studio项目

3
我正在将我们的游戏从使用ndk-build转换为使用Android Studio和CMake。
该应用程序是一个JNI应用程序,采取以下形式:
1. Java主要活动(单个、非常基本的.java文件)
2. c ++应用程序代码(游戏代码)
3. c ++物理代码(编译并链接为静态库)
4. c ++图形代码(编译并链接为静态库)
这3个文件被编译为共享的.so lib,以由主要活动加载和运行。
这如何转化为gradle构建文件和cmakelists?
我看到很多例子只链接外部的静态库,那对我没有用。我也需要编译它们,并希望它们显示在项目视图中,以便我可以编辑源代码。
如果我能够将静态lib“项目”直接放入其他应用程序中,同时保留编辑这些lib源代码的能力,这将很好(类似于visual studio工程文件)。
这是否可能实现?
非常感谢!
Steve.
1个回答

9

CMakeLists.txt

add_library( physics STATIC
         physics/src1.cpp physics/src2.cpp )
add_library( graphics STATIC
         graphics/src1.cpp graphics/src2.cpp )
add_library( game SHARED
         game/src1.cpp game/src2.cpp )
target_link_libraries( game
         physics graphics
         log
)

您可以将其拆分为多个文件:

physics/CMakeLists.txt

add_library( physics STATIC
         src1.cpp src2.cpp )

graphics/CMakeLists.txt

add_library( graphics STATIC
         src1.cpp src2.cpp )

CMakeLists.txt

add_subdirectory( physics )
add_subdirectory( graphics )
add_library( game SHARED
         game/src1.cpp game/src2.cpp )
target_link_libraries( game
         physics graphics
         log
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接