当前位置: 首页 > 知识库问答 >
问题:

如何区分设备的toolchain?为了用C语言构建本机应用程序

钮轩昂
2023-03-14

我有一个C语言的共享库。我想在我的android设备上编译和运行一个测试应用程序。至于我的理解,以下是我认为我必须做的:

  1. 使用arm设备的工具链交叉编译arm设备的库
  2. 创建一个Android.mk文件并使用NDK进行编译(我使用了以下链接:build-cc-executables-for-android-using-ndk)

我修改了Android.mk文件以添加共享库,

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS) 
# give module name
LOCAL_MODULE    := depend1
LOCAL_SRC_FILES := libdepend1.so 
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS) 
# give module name
LOCAL_MODULE    := depend2
LOCAL_SRC_FILES := libdepend2.so 
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS) 
# give module name
LOCAL_MODULE    := test
# list your C files to compile
LOCAL_SRC_FILES := test.c
# this option will build executables instead of building library   
include $(BUILD_EXECUTABLE)
Init: Error opening /data/local/project/depend1.so:  dlopen failed: could not load library "depend2.so" needed by "depend1.so"; caused by could not load library "libgcc_s.so.1" needed by "depend2.so"; caused by library "libgcc_s.so.1" not found

共有1个答案

段成益
2023-03-14

这个库用Cmake还是automake?

对于Cmake,您只需要正确地处理它(如何)

示例:cmake-dandroid_ndk=path/to/ndk-dcmake_toolchain_file=$ndk/build/cmake/android.toolchain.cmake-dandroid_abi=armeabi-v7a-dandroid_platform=android-21..

 类似资料:
  • 正如标题所示,我试图使用Docker为一个基于Kotlin的Micronaut应用程序构建一个本机映像。 我已将以下依赖项添加到文件中。 一切似乎都井然有序。映像启动并似乎接受连接,但当我启动http请求时,会出现以下错误。 有没有关于如何避免上述错误的线索?

  • 要创建 language application,必须能够对 input phrase/subphrase 做合适的代码处理,最简单的方式是操作 parser 生成的 parse tree。 前面讲过: lexer 处理输入的 character 流,解析 token,并将 token 传递给 parser parser 根据 token 检查 sentence syntax 是否合法,并生成 p

  • 我有作为问答应用程序的android项目,我需要运行一些代码,如果用户系统郎是英语,另一个代码,如果用户系统郎阿拉伯语或其他,我如何才能做到这一点。我的意思是,如果朗能跑声音正确回答,而如果朗是其他朗跑另一个声音不同的朗。

  • 不确定我错过了什么?在阅读了多个博客和StackOverflow问题后,我尝试将内存增加到Xmx12G,但没有成功。我不断得到msg来增加内存。最近有没有人面临这个问题,它已经解决了吗?这只是直接从夸克网站下载的普通应用程序。

  • 问题内容: 我通常在Linux系统上工作,但遇到一种情况,我需要编写一个客户端应用程序,该应用程序可以作为服务在Windows上运行。有人可以帮助我或指导我如何在Windows环境下构建MenuBar应用程序(例如Dropbox),该应用程序从操作系统启动开始,图标位于TaskBar中,然后单击该应用程序图标将显示一个菜单。 我的脚本语言是python。谢谢。 问题答案: 您可以使用pywin32

  • 我是新来的火花,所以我按照这个惊人的教程从sparkbyexamples.com和阅读我发现这一节: 洗牌分区大小 根据您的数据集大小,大量内核和内存PySpark洗牌可能会对您的工作有利或有害。当您处理的数据量较少时,通常应该减少无序分区,否则最终会得到许多分区文件,每个分区中的记录数较少。这会导致运行许多任务时需要处理的数据较少。 另一方面,当您有太多数据并且分区数量较少时,会导致运行时间较长