我正在将我们的游戏从使用ndk-build转换为使用Android Studio和CMake。
该应用是一个JNI应用,采用以下形式:
Java主要活动(单个,非常基本的.java文件)
c ++应用程序代码(游戏代码)
c ++物理代码(作为静态库编译和链接)
c ++图形代码(作为静态库编译和链接)
这3个文件被编译成一个共享的.so lib,由主活动加载和运行。
这如何转换为gradle构建文件和cmakelists?
我见过很多只链接在外部静态库中的例子,没用。我也需要编译它们,我希望它们能够在项目视图中显示,我可以编辑源代码。
如果我可以将静态lib'项目'放入其他应用程序中,同时保留编辑这些库的源代码的能力(类似于可视工作室项目文件。
这可能吗?
非常感谢,
史蒂夫。
答案 0 :(得分:4)
<强>的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
)