gpt4 book ai didi

android - 如何用Android.mk编译Cmake文件?

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:13 24 4
gpt4 key购买 nike

我需要为示例CPP 项目生成ARM 结构共享库。

示例项目包含:

  • CMakeLists.txt
  • 一些.cpp (s)
  • 一些.h(s)
  • some.tab.cpp.make (S)
  • some.tab.hpp.cmake (s)

现在,我想为不同的 Android 项目创建一个共享库。我尝试使用 [Android-Cmake][1] 进行编译,但它生成的是 X86 架构库而不是 ARM。

请告诉我是否有其他方法可以做到这一点。我还可以在所有版本的 Android 平台上运行 X86 吗?

编辑:

这是我的 Android.mk:

LOCAL_PATH := $(call my-dir)/../   //Path is according JNI Folder
SRC_TOP_DIR := $(LOCAL_PATH)

include $(CLEAR_VARS)

LOCAL_MODULE := smileParse
LOCAL_CFLAGS := -DANDROID

LOCAL_SRC_FILES := main.cpp test.cpp smamain.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include $(LOCAL_PATH)/

最佳答案

在您的项目中创建一个名为 JNI 的文件夹:

enter image description here

在 JNI 文件夹中创建或编辑 Android.mk,设置包含和库路径,

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := some.cpp
include $(BUILD_SHARED_LIBRARY)

声明一个java包装类,声明一个本地函数:

public class JWrapperSomeClass {
public native void Demo(int para);
}

使用 javah 命令为您的 C++ 方法包装器生成函数签名:

javah -jni -classpath bin/classes/ -d jni com.example.Your.Package.Class

用C++编辑代码

转到您的项目文件夹,运行命令:

$ANDROID_NDK/ndk-build

其中 $ANDROID_NDK 是你安装 android NDK 的文件夹

差不多就这些了。有关详细信息,您可以阅读 NDK 或 JNI 文档。

关于android - 如何用Android.mk编译Cmake文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24525557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com