前言
经过几天在Linux下开发,记录一下我经常用到的但是又记不住的常用命令,包含Makefile的语法
提示:以下是本篇文章正文内容
🍓终端指令
1.FTP传输指令
开启Linux下FTP服务
sudo /etc/init.d/vsftpd restart
2.查看主机IP
ifconfig -a
3.软件安装与卸载
apt(Advanced Packaging Tool)是Linux系统下的一款安装包管理工具
apt install [package] 安装指定的包,并同时安装其依赖的其他包 apt remove [package] 卸载包,但不删除相关配置文件 在老版本中:sudo apt-get install [package] 建议直接使用apt替代apt-get命令
dpkg(Debian package)是一个Debian的一个命令行工具,它可以用来安装、删除、构建和管理Debian的软件包
sudo dpkg -i xxxx.deb
4.压缩与解压缩
tar命令 参数
-f,使用归档文件或 ARCHIVE 设备 -c:创建新归档,创建压缩文件 -x:从图档中解出文件,解压缩 -j:使用bzip2压缩格式。 -z:使用gzip压缩格式 -v:打印出命令执行过程。
sudo tar -vxf [filename] (*.tar 用 tar –vxf ) tar -vcf test.tar test 将test打包成test.tar
5.可执行权限设置
chmod 777 [filename]
6.查看磁盘
ls /dev/sd*
7.复制
从上节”兄弟“目录复制到本目录
cp …/目录/文件 ./ (当前目录)前面是两个逗号(编辑器问题)
8.程序下载
./imxdownload <.bin file> < SD Card> .bin 要下载的文件 SD卡:要下载的位置 ./imxdownload ledc.bin /dev/sdb
🍒Makefile
1.编译文件
将*.s 或者 .c 文件编译为.o文件
arm-linux-gnueabihf-gcc -g -c *.s -o *.o -g:产生调试信息, GDB能够使用这些调试信息进行代码调试 -c:编译源文件,但是不链接 -o:指定编译产生的文件名字
更常用的是:
arm-linux-gnueabihf-gcc -Wall -nostdlib -c -O2 -o $@ $< -Wall: 显示编译时的所以警告 -nostdlib:不连接系统标准启动文件和库文件,否则编译出错 -O2:优化等级 $@:目标文件 $<:依赖文件
2.链接文件
将*.o 文件链接到 0X XXXXXXXX 地址生成*.elf文件
arm-linux-gnueabihf-ld -Ttext 0X XXXXXXXX *.o -o *.elf -o: 指定链接生成的 elf 文件名(elf可执行文件) 这里Ttext是默认文件
更常用的
arm-linux-gnueabihf-ld -Timx6ul.lds -o *.elf $^ 注:imx6ul.lds是自己编写的链接文件 $<:依赖文件
3.格式转换
将*.elf文件转换为*.bin文件
arm-linux-gnueabihf-objcopy -O binary -S -g *.elf *.bin -O:指定格式输出,binary表示以二进制格式输出 -S:表示不要复制源文件中的重定位信息和符号信息 -g:表示不复制源文件中的调试信息
常用
arm-linux-gnueabihf-objcopy -O binary -S *.elf $@
4.反汇编
有时需要查看其汇编代码来调试代码,就需要进行反汇编,一般可以将*.elf 文件反汇编生成*.dis文件
arm-linux-gnueabihf-objdump -D -m *.elf > *.dis -D:表示反汇编所有的段
总结
提示:这里对文章进行总结:
|