笔记(嵌入式Linux C篇)1——环境搭建、基本命令与编译器

前言

对于嵌入式linux这方面,只在课设用开发板做过一个小项目,从环境搭建、交叉编译到板子烧程序、引导已经是记忆模糊,也是跟教程一步一步进行,缺少点自我思考产生的认识。此外,当时项目最初是想做一个调用百度数字识别API的车牌识别系统,大部分时间都花在交叉编译配置上,最后做了一半,识别接口搞好了摄像头驱动没搞明白,项目最后换成了一个用GPS模块显示经纬度的QT应用。

经历那个项目之后,感觉自己对这个嵌入式方面挺感兴趣,虽然我的这个专业没有计算机软,也没电

子IC的硬,但好在什么都有接触过,对于我可能软硬件都有需求的嵌入式是个更好的选择,所以继STM32,再开一条Linux C的学习路线,从基础开始学习。

一、环境搭建和基本命令

开发平台这里我选择的是桌面版本的ubuntu16.04,原因是图形化界面能友好一些;编辑器使用vim7.4;编译器使用gcc。

Linux的基本命令暂时用到的就是cd、ls、rm、mkdir、rmdir、cp,其他常用linux命令参考文章https://blog.youkuaiyun.com/Dabie_haze/article/details/118969328

这边着重说一下man命令,man所代表的的是英文单词manual,也就是帮助手册的意思,Linux中的man手册就是提供给用户在有不明白的命令或者函数的时候,去查询它的功能、使用方法、头文件以及所需参数的帮助手册。man手册分8页,内容如下:

比如, 要查看C某个函数的使用方法,终端输入man 3 printf即可查看相关说明。

二、Vim和GCC使用

一个c源文件生成可执行文件要经历预处理、编译、汇编、链接、可执行文件的过程。

1、预处理

vim创建一个test.c文件后保存,使用gcc -E test.c > test.i命令生成预处理后的.i文件,这一步是处理#include和#define等预处理指令。

2、编译

使用gcc -S test.i命令生成编译后的.s文件。编译就是把预处理完的文件,进行语法分析、词法分析、语义分析及优化后生成相应的汇编代码文件,这个过程是整个程序构建的核心过程,也是最复杂的部分。

3、汇编

使用gcc -c test.s命令生成汇编后的.o文件。其中,-c 表示只编译不链接。将汇编代码文件转变成机器可以执行的指令文件,即目标文件。

4、链接

使用gcc test.o -o test命令生成可执行文件,链接就是将各个目标文件进行合并符号表,符号解析,重定位,最后生成目标文件。

以上操作也都可以通过一句gcc test.c -o test_1来直接生成可执行文件test_1;同时,make test也可以实现相同的功能

参考

https://blog.youkuaiyun.com/Dabie_haze/article/details/118969328

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值