Linker 静态编译一个android程序

Linker 静态编译一个android程序,linker,android-ndk,arm,Linker,Android Ndk,Arm,我正在尝试在安装/系统之前将某些内容写入dmesg日志。 我的问题是,为了写入dmesg(在android上),我需要使用android特定的东西,而不仅仅是我通常使用的crossdev arm系统。 只是: 如果您按照以下方式编译它(我在/var/tmp/android中创建了一个独立的工具链),那么一切都很好: 但上面的命令将构建一个动态链接的可执行文件,如果系统尚未启动,该文件将正常运行。 “简单,静态编译就行了!”我想。 android ndk附带了一些LIB,但liblog只是libl

我正在尝试在安装/系统之前将某些内容写入dmesg日志。
我的问题是,为了写入dmesg(在android上),我需要使用android特定的东西,而不仅仅是我通常使用的crossdev arm系统。
只是:

如果您按照以下方式编译它(我在/var/tmp/android中创建了一个独立的工具链),那么一切都很好:

但上面的命令将构建一个动态链接的可执行文件,如果系统尚未启动,该文件将正常运行。
“简单,静态编译就行了!”我想。
android ndk附带了一些LIB,但liblog只是liblog.so,不是liblog.a,那么在安装/system之前,我如何在dmesg中记录一些内容呢?

提前感谢。

使用arm未知gnueabi gcc和
fopen在fopen返回的文件*上打开/dev/kmsg和fprintf。
在android运行时运行该程序将写入dmesg,但在早期启动过程中不会写入。为什么?

@奥塞伦 我已经修改了init来启动这个静态程序:
init.rc代码段

on post-fs-data
write /dev/kmsg "launching test"
exec /data/test
我在dmesg中看到的只是

<4>[    6.336816] launching test
<6>[    6.336902] init: command 'write' r=0
<6>[    6.337115] init: command 'exec' r=-1
[6.336816]发射测试
[6.336902]初始化:命令“写入”r=0
[6.337115]初始化:命令'exec'r=-1

这是可执行的源代码:

您应该为不同的关注点创建不同的问题。顺便说一句,这不是对您自己问题的回答。可能无法从数据分区运行它。是的,我这样做了,我认为这是对您的回答,因为您回答了我;)当andoid正在运行时,这是可能的……为什么不在早期引导阶段呢?您应该接受答案或提供评论。
on post-fs-data
write /dev/kmsg "launching test"
exec /data/test
<4>[    6.336816] launching test
<6>[    6.336902] init: command 'write' r=0
<6>[    6.337115] init: command 'exec' r=-1