yocto 编译C程序
2024-09-05 10:41:12
1. 找到编译器位置所在(相关设置参考/opt/poky/1.7/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi文件)
poky安装在/opt目录下,编译器目录:/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueab/
2. 将编译器目录添加如环境变量
vi ~/.bashrc
在最后加入
PATH=$PATH:/opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi
export PATH
使路径生效
sourec ~/.bashrc
3. 编写Makefile
编写hello world程序。
编写Makefile
CC=arm-poky-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9
CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types
LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
EXEC = hello
OBJS = hello.o all:$(EXEC) $(EXEC):$(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) clean:
rm -f $(EXEC) *.elf *.gdb *.o
4. 出现问题
开发板上执行生成的hello可执行程序提示: -sh: ./hello: not found
使用arm-linux-gnueabihf-readelf -d hello 命令查看动态链接库情况,显示只使用了 libc.so.6 这个动态库
查看开发板根文件系/lib文件夹,发现有动态库存在。
网上说可能是 2个动态库 版本相差太多造成的,所以需要静态编译(在编译选项中加入-static即可)hello程序。
开发板上再次执行hello程序,成功。
最新文章
- Linux下配置Lamp
- 孙鑫视频学习:改变窗口过程函数中出现error C2440错误的解决方法
- innobackupex 恢复实验
- 一步步学习ASP.NET MVC3 (9)——JsonReslt,JavaScript,@Ajax
- UTF8与GBK、GB2312等其他字符编码的相互转换
- 动态规划——J 括号配对问题
- Stars(树状数组+线段树)
- 微信小程序对医疗创业的启示,“餐饮+微信小程序”的猜想
- JDK的安装以及配置
- 详解vue生命周期
- 【bzoj 3233】[Ahoi2013]找硬币 ——搜索
- SQL,group by分组后分别计算组内不同值的数量
- [UE4]Retainer Box
- Oracle不能并行直接添加主键的方法:先建唯一索引后建主键
- javascript构造函数模块
- CSS 之 div中文字超出时自动换行
- Hive中自定义Map/Reduce示例 In Java
- 转: Dubbo远程调用服务框架原理与示例
- pycharm激活地址
- Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向
热门文章
- Kubernetes web界面kubernetes-dashboard安装【h】
- Unreal Engine* 4.19 的 CPU 功能检测
- 【Web】如何注释?
- 零零散散的python笔记
- android简易跑马灯
- Excel小技巧(生成数字篇)
- [转帖] 龙芯 中标麒麟的 源 以及K8S
- [转帖]如何在VirtualBox中运行macOS Catalina Beta版本
- *【Python】【demo实验30】【练习实例】【使用Turtle实现实时时钟效果】
- 神奇的负margin解决border“合并”