vim /etc/sudoers
root ALL=(ALL) ALL
lrf ALL=(ALL) ALL 将lrf用户添加进白名单,让其可进行sodu(以管理员的身份)操作
-----------
userdel -r 用户名 :删除用户
-------------
1.预处理(gcc -E mycode.c -o mycode.i):去注释、头文件展开、条件编译(裁剪掉社区版不需要的功能)、宏替换;还是c语言
2.编译(gcc -S mycode.i -o mycode.s):生成汇编语言
3.汇编(gcc -c mycode.s -o mycode.o):生成机器可识别码/可重定位目标二进制文件,简称目标文件,虽然已经是二进制了,但不可以独立执行,就算(chmod +x mycode.o) 也不行,需要经过链接才行。
4.链接(gcc mycode.o -o mytest):(生成可执行文件或库文件)将可重定位目标二进制文件和库进行链接,形成可执行文件
.o文件和库是如何连接的?
1.动态链接:动态库是共享的,可以节省资源(磁盘空间,内存空间,网络空间);动态库一旦缺失会导致各个程序无法运行
2.静态链接:不依赖库,程序可以独立运行;但体积大,比较消耗资源
如果没有静态库就不能-static
如果我们没有动态库,只有静态库,而且gcc能找到,就可以进行动态链接,因为gcc默认优先动态链接,-static的本质:改变优先级
不一定完全是动态链接或者静态链接,可能是混合的
-------------------
gcc mycode.c -0 mytest:将mycode.c文件编译后保存到mytst新文件中
编译型语言安装开发包,必定是下载安装对应的头文件+库文件
------------------------------------
debug:可以被追踪调试,形成可执行程序时,添加了debug信息
(gcc mycode.c -o mytest_debug -g);-g :debug方式
----------------
make/makefile
make:是一条指令
makefile:是一个当前目录下的文件