【发布时间】:2019-03-27 21:06:00
【问题描述】:
现在我在 Android Studio 3.2 中创建了一个包含 c++ 支持的新项目,它自然有native-lib.cpp,CMakeLists.txt 看起来像这样:
add_library( # Sets the name of the library.
native-lib
# Sets the library as a shared library.
SHARED
# Provides a relative path to your source file(s).
src/main/cpp/native-lib.cpp)
现在如果我构建这个项目,我可以在一些“调试”目录中找到libnative-lib.so,这没关系,但我想要静态库,即.a 文件。
将SHARED改为STATIC不会生成这些文件,我还应该怎么做?
除了add_library(),CMake 文档没有提及其他方式。
我搜索的每个文档都只谈论SHARED/STATIC。
我错过了什么?
【问题讨论】:
-
“将 SHARED 更改为 STATIC 不会生成这些文件” 你在哪里找的?我希望它存在于
app/.externalNativeBuild/cmake/buildVariant/abi/src/main/cpp/下(其中buildVariant是您的构建变体之一,abi是您正在构建的ABI 之一)。 -
您需要在共享库中使用静态库,它才能对应用程序有用。除非你分发库,否则单独的静态库是没有用的。
标签: android cmake android-ndk java-native-interface static-libraries