我正在将我们的游戏从使用 ndk-build 转换为使用 Android Studio 和 CMake。
该应用是采用以下形式的 JNI 应用:
Java 主要 Activity (单个、非常基本的 .java 文件)
c++应用程序代码(游戏代码)
c++ 物理代码(编译和链接为静态库)
c++ 图形代码(作为静态库进行编译和链接)
这 3 个文件被编译成一个共享的 .so 库,供主 Activity 加载和运行。
这如何转化为 gradle 构建文件和 cmakelists?
我见过很多只链接外部静态库的例子,那是没有用的。我也需要编译它们,我希望它们显示在项目 View 中,以便我可以编辑源代码。
如果我也可以将静态库“项目”放入其他应用程序,同时保留编辑这些库的源代码的能力(类似于 Visual Studio 项目文件),那也很好。
这可能吗?
非常感谢,
史蒂夫。
最佳答案
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
)
或者您可以将其拆分为多个文件:
物理/CMakeLists.txt
add_library( physics STATIC
src1.cpp src2.cpp )
图形/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
)
关于java - 如何创建具有多个静态库的 JNI Android Studio 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46918887/