加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
109-Linux_Shell_Makefile 3.86 KB
一键复制 编辑 原始数据 按行查看 历史
zhangjing 提交于 2020-03-15 20:50 . [Modify]整理Linux编程题目
====
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 := $(foreach var,$(COMPILE), $(var:.cpp=.o))
.PHONY default clean
default: $(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 := $(foo:.o=.c)
这个示例中,我们先定义了一个“$(foo)”变量,而第二行的意思是把“$(foo)”中所有以“.o”字串“结尾”全部替换成“.c”,所以我们的“$(bar)”的值就是“a.c b.c c.c”。
讲解2:
“$<”表示所有的依赖目标集(也就是“file1.cpp file2.cpp”),“$@”表示目标集(也就是file1.o file2.o”)
讲解3:
$(foreach <var>,<list>,<text>)
这个函数的意思是,把参数<list>;中的单词逐一取出放到参数<var>;所指定的变量中,然后再执行< text>;所包含的表达式。每一次<text>;会返回一个字符串,循环过程中,<text>;的所返回的每个字符串会以空格分隔,最后当整个循环结束时,<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具体含义.
答:分页显示当前目录下包含隐藏文件在内的所有文件。
权重:中
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化