新路程------imx6 编译c可执行文件

来源:互联网 发布:淘宝 授权怎么弄啊 编辑:程序博客网 时间:2024/06/04 20:04

 一开始用arm-fsl-linux-gnueabi-gcc -o这样的命令编译,结果执行发现呵呵:

root@sabresd_6dq:/data # ./test1
./test1
/system/bin/sh: ./test1: No such file or directory

发邮件问飞凌官方售后,回答也基本没什么,唯一有道理点的就是由于交叉编译版本是2013年前的,所以有的so不统一,我尝试将编译器的so放到开发板上,发现还是不行,这条路就不折腾了。

网上一搜,直接在

1.在./development目录下创建一目录 如:myhello
2. 进入hello目录,在其下编写自己的.c文件,如: myhello.c
#include <stdio.h>
int main()
{
printf("hello world\n");
exit(0);
//return 0;
}
3. 在hello目录中,编写Android.mk, 内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := myhelloworld
LOCAL_SRC_FILES := myhello.c
LOCAL_MODULE_TAGS := optional
include $(BUILD_EXECUTABLE)
4. 回到Android源代码顶层目录,进行编译,make myhelloworld
5. 生成的可执行文件位于:out/target/product/lotus/system/bin/ 目录下
到了第五步发现了问题,虽然我在系统根目录下执行java -version有版本信息
但是我在源码的根目录下执行却不行,然后执行
make myhelloworld报错说java环境没装好,于是我想到了到根目录下的env.sh里去看看,发现没有加环境变量
于是把
export JAVA_HOME=/usr/local/jdk/jdk1.6.0_45export JRE_HOME=$JAVA_HOME/jre  export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH 
这几个加进去以后就可以编译了,编译后的文件放开发板就可以执行了。



原创粉丝点击