员工考勤打卡时,如何避免非本人代替打卡?
759
2025-04-02
查找文件:
[root@wbyq /]# find / -name stdio.h
文本搜索工具:
# grep -q "12345" /123.c || echo "12345" >> /123.c
文本修改工具:sed
练习:
1. 制作动态库与静态库
2. (扩展) 编写一个find功能的程序:可以查找指定目录下指定的文件。(关心多层目录)
3. 编写一个文本修改程序:可以修改指定文件中的内容。
(1) 将指定一行的内容全部替换为空格
(2) 将指定一个字符串替换为传入指定的字符串。 ./a.out /123.c 888 666
安装软件的命令:
[root@wbyq Packages]# rpm -ivh tree-1.5.3-2.el6.i686.rpm
任务1:静态库与动态库
[root@wbyq test]# arm-linux-gcc 123.c -o app_1
[root@wbyq test]# arm-linux-gcc -static 123.c -o app_2
Linux下库文件存放的位置: /lib (存放的是动态库)
.so属于动态库, .a属于静态库
动态库称为共享库:gcc 123.c -o app
共享库:程序在运行的时候去调用函数(载入函数)。
静态库:相关的函数在编译的时候就已经拷贝到目标中。
[root@wbyq test]# file app_1
app_1: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.27, not stripped
[root@wbyq test]# file app_2
app_2: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.27, not stripped
[root@wbyq test]# gcc 123.c -o app_3
[root@wbyq test]# file app_3
app_3: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped
GCC编译器的选项参数
-o :指定生成的目标文件名称
-c :指定生成.o文件(编译好的二进制文件)。
-g :在生成的目标文件中加入调试参数。适用于GDB调试。
-I :指定头文件的路径 。 gcc 123.c -I/work
-L :指定库文件的路径。gcc 123.c -L/work
-l :指定库文件的名称。gcc 123.c -L/work -labc
(实际上: libabc.so)
生成动态库的指令
gcc -fPIC -shared -o <库文件名称>.so 源文件名称.c
库文件名称的命名规则: libxxx.so
调用动态库出现的错误:
[root@wbyq test]# ./a.out
./a.out: error while loading shared libraries: libsum.so: cannot open shared object file: No such file or directory
1. 将xxx.so直接放到/lib目录下。
2. 设置环境变量:LD_LIBRARY_PATH (存放系统库文件的搜索路径)
生成静态库。 xxx.a
如果在相同的目录下有静态库和动态库,优先使用动态库
# ar crv libsum.a sum.o
任务2:Makefile
Makefile :用于编写程序的编译规则。 make命令用于执行Makefile文件。
make常用的选项参数:
-n :输出命令的执行过程,不执行名称
-s :隐藏命令本身。 在命令前面加上@符号,可以隐藏命令本身。
$(shell pwd)
CC :特殊变量,用于存放编译器。
练习:
1. Makefile自动化编译
只是创建3个目录,每个目录下各有一个.c一个.h,一个Makefile文件
在顶层目录下创建一个Makefile文件,,实现自动化编译。
2. Makefile自动化编译
只是创建3个目录,每个目录下各有一个.c一个.h
在顶层目录下创建一个Makefile文件,实现自动化编译。
查找字符串并替换为其他字符串:
查找字符串并替换为其他字符串。 比如: “123dfjdfv123” 将123替换为888 结果: “888dfjdfv888” “123dfjdfv123” 将123替换为8888 结果: “8888dfjdfv8888” “123dfjdfv123” 将123替换为88 结果: “88dfjdfv88” #include 模拟电子时钟 #include Linux Makefile
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。