linux ndk静态编译,NDK编译可执行文件 - austinyancanlin的个人页面 - OSCHINA - 中文开源技术交流社区...

本文介绍如何在Android NDK中使用build工具处理hello.c工程的编译问题,包括AndroidManifest.xml的创建、NDK_PROJECT_PATH设置及两种解决编译错误的方法:空文件修复和路径赋值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于C应用程序的编译链接,自己编写的makefile是件比较困难的事情,我们可以利用NDK提供的build工具,实现我们的目标。

比如我们以hello.c工程:

#include 

int main()

{

printf("Hello World!\n");

return 0;

}

编写Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE:= helloa

LOCAL_SRC_FILES := hello.c

include $(BUILD_EXECUTABLE)

在当前目录下打开终端运行:ndk-build,出现如下错误:

[D:\ndk\android-ndk-r9d\sources\hellotest]$ ndk-build

Android NDK: Could not find application project directory !

Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.

D:\ndk\android-ndk-r9d\build/core/build-local.mk:148: *** Android NDK: Aborting    .  Stop.

解决办法有两种:

1)在该路径下创建一个空白的AndroidManifest.xml文件

再次执行ndk-build,可顺利编译出可执行文件,adb push到android平台上执行:

[D:\ndk\android-ndk-r9d\sources\hellotest]$ ndk-build

[armeabi] Compile thumb  : helloa <= hello.c

[armeabi] Executable     : helloa

[armeabi] Install        : helloa => libs/armeabi/helloa

2)根据提示,可进行NDK_PROJECT_PATH赋值指定:

ndk-build -B NDK_PROJECT_PATH=.

再次执行ndk-build,同样可顺利编译出可执行文件,adb push到android平台上执行:

[D:\ndk\android-ndk-r9d\sources\hellotest]$ ndk-build

[armeabi] Compile thumb  : helloa <= hello.c

[armeabi] Executable     : helloa

[armeabi] Install        : helloa => libs/armeabi/helloa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值