嵌入式面试5 -makefile shell

====
2、 如果有一个简单的helloworld项目目录如下:

tree helloworld

helloworld
|– file2.h
|– file1.cpp
|– file2.cpp
请编写一个Makefile文件。
答:
TARGET = helloworld
CXX = g++
COMPILE := $(COMPILE) file1.cpp
COMPILE := $(COMPILE) file2.cpp
OBJECTS := ( f o r e a c h v a r , (foreach var, (foreachvar,(COMPILE), $(var:.cpp=.o))

.PHONY default clean
default: $(TARGET)
( T A R G E T ) : (TARGET): (TARGET):(OBJECTS)
$(CXX) -o $(TARGET) $(OBJECTS)
%.o:%.cpp
$(CXX) -c $<
clean:
@rm -rf $(OBJECTS) $(TARGET)

讲解1:
foo := a.o b.o c.o // 在变量后追加值
bar := ( f o o : . o = . c ) 这个示例中,我们先定义了一个“ (foo:.o=.c) 这个示例中,我们先定义了一个“ (foo:.o=.c)这个示例中,我们先定义了一个(foo)”变量,而第二行的意思是把“ ( f o o ) ”中所有以“ . o ”字串“结尾”全部替换成“ . c ”,所以我们的“ (foo)”中所有以“.o”字串“结尾”全部替换成“.c”,所以我们的“ (foo)中所有以“.o字串结尾全部替换成“.c,所以我们的(bar)”的值就是“a.c b.c c.c”。
讲解2:
< ”表示所有的依赖目标集(也就是“ f i l e 1. c p p f i l e 2. c p p ”),“ <”表示所有的依赖目标集(也就是“file1.cpp file2.cpp”),“ <表示所有的依赖目标集(也就是file1.cppfile2.cpp),@”表示目标集(也就是file1.o file2.o”)
讲解3:
$(foreach ,, )
这个函数的意思是,把参数;中的单词逐一取出放到参数 ;所指定的变量中,然后再执行< text>;所包含的表达式。每一次 ;会返回一个字符串,循环过程中, ;的所返回的每个字符串会以空格分隔,最后当整个循环结束时, ;所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。

或者简单点的:
helloworld: file1.o file2.o
g++ -o helloworld file1.o file2.o
file1.o:file1.cpp
g++ -c file1.cpp
file2.o:file2.cpp file2.h
g++ -c file2.cpp
clean:
rm file1.o file2.o helleworld
权重:中

====
12.在Linux系统中, 哪个文件你可以存储用于创建用户目录的系统用户默认文件?(D)
A./usr/tmp
B./etc/default
C./etc/skel
D./etc/users
权重:中

====
Linux默认的可执行bin文件路径是什么
答:/bin, /usr/bin
权重:中

====
Linux默认的库文件路径是什么
答:/lib, /usr/lib
权重:中

====
Linux的启动脚本一般在哪里
答:rc.d、etc/profile等
权重:中

====
21.Linux执行ls,会引起哪些系统调用(BCD)【多选】
A nmap
B read
C execve
D fork
解析:任何shell都会执行 exec 和 fork,而ls会执行read三个加起来
权重:较低

====
6、GCC -g -o test.elf test.c的具体含义.
答:将当前目录下test.c编译成带GDB调试功能的应用程序test.elf。注意,其中应用到了gcc的隐藏规则,本来应该是两步:GCC -o test.elf test.o GCC -c test.c,但是直接用-o test.c的时候gcc会自动推导。-g选项嵌入式应该掌握,-g后程序崩溃后生成的core文件在GDB下可以看到更多的信息,也可以配合GDB在运行时单步执行,设置断点什么的。
权重:中

===
用gcc将test.c编译成一个可执行文件test
答:gcc -o test test.c
权重:中

====
1、一些Linux命令:显示文件、拷贝文件、移动文件、删除文件。
答:显示文件ls,显示隐藏文件ls -a,显示文件详细信息ls -l;
拷贝文件cp source_name dest_name,强制复制文件和目录cp -rf source_name dest_name;移动文件mv source_name dest_name;删除文件rm file_name。
权重:高

====
4、LINUX下查看进程的命令?查看系统资源使用情况的命令?netstat是作什么用的?
答:linux下查看进程的命令,ps命令
使用free-m命令
Netstat命令是查看网络连接的详细状态的命令
权重:较高

====
Linux查看进程信息的命令
答:top
权重:较高

====
Linux搜索文件内容和文件名的命令
答:grep -rn 文件内容
find . 文件名
或者在匹配文件名的文件中查找文件内容
find . filename | xargs grep -rn filecontent
权重:中

====
描述*在查找和正则表达式中的含义
答:表示0个或多个任意字符
权重:中

====
6、解释命令ls -a | more具体含义.
答:分页显示当前目录下包含隐藏文件在内的所有文件。
权重:中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/28468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建日志服务器Rsyslog

Rsyslog介绍 Rsyslog的全称是 rocket-fast system for log&#xff0c;它提供了高性能&#xff0c;高安全功能和模块化设计。rsyslog能够接受从各种各样的来源&#xff0c;将其输入&#xff0c;输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。 特…

SQL Server数据库如何添加Oracle链接服务器(Windows系统)

SQL Server数据库如何添加Oracle链接服务器 一、在添加访问Oracle的组件1.1 下载Oracle的组件 Oracle Provider for OLE DB1.2 注册该组件1.2.1 下载的压缩包解压位置1.2.2 接着用管理员运行Cmd 此处一定要用管理员运行&#xff0c;否则会报错 二、配置环境变量三、 重启SQL Se…

java 图片处理 Graphics2D GraphicsMagick 避免oom

GraphicsMagick 号称图像处理领域的瑞士军刀。GraphicsMagick 是个图片处理库&#xff0c;是从ImageMagick 5.5.2分支出来。 Graphics2D是JDK 自带的一套图片处理库。但性能一般。 Java 方面也提供了类似 JNI 方式支持 GraphicsMagickim4java 处理图像。 但OpenCV&#xff0…

嵌入式面试7---进程or线程or同步

3.int main(){fork()||fork();}共创建几个进程&#xff08;B&#xff09; A.2 B.3 C.4 D.5 解析&#xff1a;首先&#xff0c;父进程fork后&#xff0c;给父进程返回子进程pid&#xff0c;此时为真&#xff0c;逻辑或语句不再执行&#xff0c;但是fork出的子进程是复制的父进程…

使用Spring五大注解来更加简单的存储Bean对象

在使用Spring框架的时候我们如果使用这种方式来存储bean对象的话未免有点太麻烦了 <bean id"xxx" class"xxx"> </bean> 为了简化存储Bean对象的操作&#xff0c;我们可以使用五大类注解来进行存储Bean对象 我们首先要在配置文件配置扫描路径…

【快应用】list组件属性的运用指导

【关键词】 list、瀑布流、刷新、页面布局 【问题背景】 1、 页面部分内容需要瀑布流格式展示&#xff0c;在使用lsit列表组件设置columns进行多列渲染时&#xff0c;此时在里面加入刷新动画时&#xff0c;动画只占了list组件的一列&#xff0c;并没有完全占据一行宽度&…

把大模型装进手机,分几步?

点击关注 文 | 姚 悦 编 | 王一粟 大模型“跑”进手机&#xff0c;AI的战火已经从“云端”烧至“移动终端”。 “进入AI时代&#xff0c;华为盘古大模型将会来助力鸿蒙生态。”8月4日&#xff0c;华为常务董事、终端BG CEO、智能汽车解决方案BU CEO 余承东介绍&#xff0c…

Gson 添加数据默认值问题记录

问题&#xff1a;在用Gson add(key&#xff08;string类型&#xff09;&#xff0c;value&#xff08;必须是JsonElement子类&#xff09;&#xff09;时发现&#xff0c;value 传了 "" 空字符串&#xff08;非null&#xff09;&#xff0c;默认解析后返回null&#…

jmeter测试rpc接口-使用dubbo框架调用【杭州多测师_王sir】

1.基于SOAP架构。基于XML规范。基于WebService协议。特点:接口地址?wsdl结尾2.基于RPC架构&#xff0c;基于dubbo协议&#xff0c;thrift协议。SpringCloud微服务。3.基于RestFul架构&#xff0c;基于json规范。基于http协议(我们常用的都是这种&#xff0c;cms平台也是) Rest…

windows环境下安装elasticsearch、kibana

通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候&#xff0c;要非常小心&#xff0c;因为100等于100、但是200不等于200&#xff0c;当然&#xff0c;如果你会一点小花招&#xff0c;也可以让100不等于100、让200等于200。(运算符比较…

CSS 盒模型是什么?它包含哪些属性?标准盒模型/怪异盒模型

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 盒模型⭐ 标准盒模型⭐ 怪异盒模型⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感…

深度学习中的优化算法

文章目录 前言一、优化和深度学习1.1 优化的目标1.2 深度学习中的优化挑战1.2.1 局部最小值1.2.2 鞍点1.2.3 梯度消失 二、梯度下降2.1 一维梯度下降2.1.1 学习率 2.2 多元梯度下降2.3 自适应方法2.3.1 牛顿法2.3.2 其他自适应方法 三、随机梯度下降3.1 随机梯度更新3.2 动态学…

Go-Gin框架

一、Gin介绍 Gin是一个用Go编写的HTTPweb框架。它是一个类似于martini但拥有更好性能的API框架, 优于httprouter&#xff0c;速度提高了近 40 倍。 点击此处访问Gin官方中文文档。 二、安装 1、安装Gin go get -u github.com/gin-gonic/gin 2、代码中引入 import "g…

C#/.Net 程序调试

1:确定哪里出错了&#xff1f; 如果不知道在哪里出错了就在业务代码的第一步点断点&#xff1b; 2&#xff1a;必须使用F5或者点击按钮 3&#xff1a;当程序执行到你的断点的时候程序就会被卡死。黄色的条表示到了该行但是该代码还没有执行。 4&#xff1a;F10逐&#xff08;行…

java数组

概述 数组&#xff1a;存放一组相同数据类型的元素(数据) 按照一定的顺序排列的集合。数组是一个容器、 数组可以分为一维数组和二维数组 一维数组&#xff1a;一组数据二位数组&#xff1a;多组数据 一维数组 静态初始化 适用于一组数据是”已知的“ 语法格式 元素的数据…

安路FPGA的赋值报错——移位处理,加括号

authordaisy.skye的博客_CSDN博客-嵌入式,Qt,Linux领域博主 在使用移位符号用来当作除以号使用时&#xff0c;发现如下问题 其中 cnt_8K 为偶数和奇数时输出的数据不一样 reg [10:0] cnt_8K; reg [10:0] ram1_addra; always(posedge clk_16M) begin if(ram_out_flag )begin if(…

2024重庆邮电大学软件工程809题库(带答案)

1&#xff0e;下列选项中&#xff0c;不属于质量管理的主要任务的是&#xff08; C &#xff09;。 A&#xff09;制定软件质量保证计划 B&#xff09;按照质量评价体系控制软件质量要素 C&#xff09;增加软件产品的功能 D&#xff09;对最终软件产品进行确认 2&#xff0e;下…

网络编程——TCP/IP协议族(IP协议、TCP协议和UDP协议……)

TCP/IP协议族 一、IP协议 1、IP协议简介 IP协议又称网际协议 特指为实现在一个相互连接的网络系统上从源地址到目的地传输数据包(互联网数据包)所提供必要功能的协议&#xff0c;是网络层中的协议。 2、特点 不可靠:它不能保证IP数据包能成功地到达它的目的地&#xff0c;仅…

系统与软件安全研究(八)

FUZZ101入门 Detail gcc,clang,llvm都有啥区别GCC (GNU Compiler Collection), Clang, 和 LLVM 都是用于编译代码的工具链。它们在某些方面有相似之处,但也有一些重要的区别。 GCC (GNU Compiler Collection):GCC 是由 GNU 组织开发的,是一个非常流行的开源编译器集合。它…

C语言预定义宏记录

今天看RXW源码的时候&#xff0c;看到了在函数里使用 func 参数的样例&#xff0c;遂查一下这两玩意的使用方法 这玩意叫做预定义宏 标准C语言预处理要求定义某些对象宏&#xff0c;每个预定义宏的名称为两个下划线字符开头和结尾&#xff0c;这些预定义宏不能被取消定义&…