linux gcc -E -S -C

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:是一个当前目录下的文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值