`
JasonShieh
  • 浏览: 526733 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Mac上NDK编译C可执行程序

 
阅读更多
一 下载NDK,解压并配置PATH
     export PATH=$PATH:{NDK path}
二 清楚交叉编译的工具链在哪。输入如下命令:
SYSROOT=$NDK/platforms/android-<level>/arch-<arch>/
$NDK表示NDK安装的路径,level表示Android版本,arch表示硬件结构。均视自己情况而定。
可以通过adb shell  cat  /proc/cpuinfo 查看需要执行的Android环境。例如:
SYSROOT=$NDK/platforms/android-8/arch-arm

三 设置编译器,输入如下命令:
export CC="$NDK/toolchains/<name>/prebuilt/<system>/bin/<prefix>gcc --sysroot=$SYSROOT"
均视自己情况而定。例如:
export CC="$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT"

四 新建jni文件夹
jni下准备好一个C程序,例如下面的HelloWorld.c
#include <stdio.h>

int main(){
    printf("Hello world!\n");
    return 0;
}

五 再建立一个Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := helloworld
LOCAL_SRC_FILES := helloworld.c
include $(BUILD_EXECUTABLE)

六 再建立一个 Application.mk:
APP_PLATFORM :=android-14
APP_PROJECT_PATH := $(call my-dir)
APP_MODULES      := helloworld
七 最后执行:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk
如果执行成功,会生成一个libs文件夹,找到自己平台下可用的可执行文件,push到手机上,然后./helloworld 执行就可以了!!
分享到:
评论

相关推荐

    mac--ndk配置

    在Android开发过程中,NDK(Native Development Kit)是一个不可或缺的工具,它允许开发者使用C和C++编写原生代码,从而提升应用性能、利用硬件特性并实现底层优化。本篇文章将详细阐述在Mac环境下配置NDK的过程,...

    gdb动态调试android可执行程序1

    gdb动态调试Android可执行程序 标题:gdb动态调试Android可执行程序1 描述:gdb动态调试Android可执行程序1 标签:android 知识点: 1. Android NDK:Android NDK是一组工具集,允许开发者使用C++和其他native...

    android ndk r5 配置

    - **Cross-Toolchains(跨平台工具集)**:一套可以在一种平台上编译出另一种平台可执行文件的工具集合。 - **ABI(Application Binary Interface 应用二进制接口)**:定义了编译后的程序如何与操作系统或其他软件...

    ANDROID-NDK.zip_NDK_android_android ndk

    Android NDK是一款重要的工具集,它允许Android开发者在原生代码(如C++)中编写应用程序的一部分,以实现更高的性能和更低级别的硬件访问。在Android应用开发中,NDK(Native Development Kit)与SDK(Software ...

    NDK入门

    - **选择安装包**:在安装过程中,选择与NDK开发相关的包,如autoconf2.1、automake1.10、binutils、gcc-core、g++等,这些是NDK编译过程中不可或缺的组件。 #### 配置NDK环境变量 安装完Cygwin后,还需要配置环境...

    Android arm64 hcitool 源码及可执行文件

    在本资源包中,包含了HCITool的源码以及针对arm64架构编译好的可执行二进制文件。 HCITool的主要功能和知识点包括: 1. **设备扫描**:HCITool可以扫描周围的蓝牙设备,列出它们的MAC地址、RSSI(信号强度指示)和...

    Android反编译APK查看

    2. 解压缩下载的文件,找到`jd-gui.exe`(Windows)或相应的可执行文件。 3. 双击`jd-gui.exe`启动应用程序。 步骤二:反编译APK 1. 打开APK文件:在JD-GUI启动后,点击顶部菜单的“File” &gt; “Open File...”,...

    ncnn编译so文件方案

    本文将详细介绍如何在不同的操作系统环境下编译ncnn,生成可用于移动设备上的so库文件。 #### 二、准备工作 在开始编译ncnn之前,首先需要完成以下准备工作: 1. **安装Git**: 如果尚未安装Git,请访问[Git官网]...

    android-ndk-r20b-darwin-x86-64.zip

    1. **交叉编译器**:用于将源代码编译为目标平台(如Android设备)的可执行代码,支持多种架构,如armeabi-v7a, arm64-v8a, x86, x86_64等。 2. **构建系统**:如Android Gradle插件的NDK支持,它允许你在Android ...

    这是 关于C# Untiy NDK

    在Unity中,开发者可以使用Unity的插件系统,通过NDK来编译原生代码,并在Unity中调用。通过Java层的JNI(Java Native Interface)桥接,C#代码可以与C/C++代码交互,执行计算密集型任务,如物理引擎、AI算法或音频...

    Android JNI-NDK与JNI基础.pptx

    Android NDK和JNI是Android开发中的...总的来说,Android NDK和JNI为开发者提供了深入底层硬件、优化性能和利用现有C/C++库的能力,是Android开发中不可或缺的一部分,尤其是在处理性能敏感或需要利用原生库的场景下。

    aarch64-linux-android-4.9

    标题中的"aarch64-linux-android-4.9"是一个针对Android平台的交叉编译工具链的标识符,它主要用于在非Android系统(如x86架构的Linux或Windows)上构建适用于Android设备的ARM64架构(aarch64)的应用程序和库。...

    curl 全平台静态库,包括 android,ios ,win,mac,linux

    - 使用静态库可能会增加最终可执行文件的大小,因为它包含了库的所有代码。 - 版本更新时,可能需要重新编译整个应用,因为静态库不会自动更新。 - 跨平台开发时,需要注意不同操作系统可能对静态库的支持和使用...

    基于深度学习+Opencv开发的高性能车牌识别系统C++源码+使用说明(可移植嵌入式和手机端).zip

    编译完成后生成可执行程序**PlateRecDemo**,执行运行测试 ```bash # 进入编译目录 cd build/ # 传入模型文件夹路径和需要预测的图像执行程序 ./PlateRecDemo ../hyperlpr3/resource/models/r2_mobile ../hyperlpr3/...

    操作系统开发/调试的案例集合

    - `Makefile`:用于编译 `server.c` 文件,生成可执行文件。 - **编译和运行:** 1. 执行 `make` 命令来编译 `server.c` 文件。 2. 使用 `./server` 命令来运行 HTTP 服务器。 - **调试:** 可以通过 GDB 对 `...

    android studio cmak+lldb(for mac)

    解压后的`cmake`文件夹包含了CMake的可执行文件和相关库,将其复制到Android SDK的根目录下,可以确保Android Studio能够正确识别和使用CMake。 `lldb`全称为“LLVM Debugger”,是苹果公司推出的开源调试工具,它...

    curl_build

    本篇文章将深入探讨如何在mac、windows和android平台上编译libcurl并结合openssl,以及解决openssl的多线程安全问题,并对在windows平台上使用/MT和/MD选项以及XP支持进行分析。 首先,跨平台编译libcurl和openssl...

    国人开发的自动构建工具 XMake.zip

    支持编译c/c /objc成静态库、动态库、命令行可执行程序(后续还会增加:mac、ios、android的app的生成规则) 提供丰富的工程描述api,使用简单灵活,例如添加编译文件只需(还支持过滤排除): add_...

    Mac版的sdk android-sdk-macosx

    由于Unity支持多平台发布,包括Android,因此开发者需要在Mac上安装对应的Android SDK以确保能够构建和调试在Android设备上运行的游戏。 Android SDK的核心组件包括: 1. **SDK Platform Tools**:包含了如ADB...

Global site tag (gtag.js) - Google Analytics