ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

嵌入式

2020-03-10 18:01:03  阅读:221  来源: 互联网

标签:可执行文件 文件 Gcc 静态 gcc 嵌入式 Linux


3.10(1)嵌入式笔记
嵌入式Linux的使用(命令)
用户管理:su sudo useradd userdel
文件管理:Linux 一切皆为文件
(普通文件-、目录文件d、设备文件c/b、链接文件l、管道文件p、堆栈文件f、共享文件s)
Is\touch\cat\gedit\gcc\rm\rm-f\chmod
目录管理:
根目录的结构:bin/sbin/etc/dev/home/root/usr/lib; sys proc
Mkdir cd cd… /绝对路径和相对路径
cp mv
其他:
tar clear pwd vmtools apt-get install
功能命令:grep sed awk find file which
嵌入式Linux开发工具-vim gcc gdb make
Vim(文本编辑器):学会使用和如何配置Vim
gcc(编辑器):学会制作动态库和静态库及使用区别;
gdb(调试器):设置断点、单步执行、调试内存错误;
Make(工程管理器):编写make file文件;
Linux 文本编辑器:Vim(功能最强大的文本编辑器)目标:摆脱鼠标
Vi vim gvim:命令行模式I \A、插入模式(yy复制 p粘贴 n dd删除 u恢复)、底行模式;
注意:esc shift: wq保存退出
Vim/etc/vim/vimrc进行配置
如何配合vim?/etc/vim/vimrc
弱化:IDE(集成开发环境) vscode
嵌入式Linux开发工具-gcc
编译器:gcc(Gnu cc)
1、gcc特点(Gnu工具、一款交叉编译器arm-linux-gcc)
2、什么是交叉编译器?
在当前的CPU平台下编译出在其他CPU平台下可执行的代码;
系统移植:(交叉编译)
在这里插入图片描述
3、文件到可执行文件需要经历哪几个步骤?
(1)预处理(2)编译(3)汇编(4)链接
预处理:头文件展开、宏替换、条件编译;
编译:将预处理文件编译成汇编文件.s;
汇编:将汇编文件编译成目标文件.o;
链接:建立符号表–可执行文件a.out;
Gcc-E hello.c只进行预处理
-I到指定目录找(第三方)
-DMAX=100宏替换
-s汇编代码
Gcc-c 汇编时停下来
-D目标文件
o 重命名可执行文件
-w 关掉警告
-Wall 开警告
<>与””区别:搜索路径不同
<> 系统头文件目录(/user/include)
“” 现在当前目录查找,找不到再到系统头文件目录查找;
静态库和动态库制作
1、什么是库文件?
保存的函数和变量(仓库)
特点:保存的函数与变量,只能使用但不能看见其实现;
2、Linux库文件:
静态库:在编译阶段加载(江库文件代码加载到源文件.a);
动态库:在运行时加载(.o);
生成的可执行文件存在区别(优缺点)
(1)使用静态库生成的可执行文件大于动态库生成的可执行文件;(程序运行占用内存较多)
(2)使用静态库生成的可执行文件难以升级,动态库生成的可执行文件易于升级;
(3)静态库运行速度快,动态库运行速度慢;
(4)使用静态库生成的可执行文件代码容易部署,动态库难以部署;
3、Linux库文件存放路径(自动搜索路径)
/lib:存放的系统运行的需要的库;
/usr/lib:存放的是程序运行时所需要的库;
如何制作静态库?
(1)将需要保存的函数所在的文件生成目标文件 gcc-c add.c—>add.o
(2)静态库的制作工具:ar
ar rcs 不存在就创建,存在就更新
库名 文件目标名 ar rcs libadd.a add.o(cp libadd.a/lib or/user/lib)
(3)使用
Gcc源文件-l库名-L库存放的路径
Gcc main.c-ladd-L.-o add
如何制作动态库?
Gcc-shared-fPIC源文件-o libca/.so
Gcc-shared-fPIC add.c sub.c-o libcal.so
使用:
Cp libcal.so/usr/lib
Gcc main.c-/cal
Gcc mian.c./libcal.so -o cal

标签:可执行文件,文件,Gcc,静态,gcc,嵌入式,Linux
来源: https://blog.csdn.net/weixin_45857288/article/details/104779596

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有