Linux程序运行基础

1 概述

2 Linux程序运行基础

2.1 Gcc编译

2.2 静态库和动态库

静态库的制作与使用

动态库的制作与使用

静态库与动态库的对比

2.3 Makefile知识

概述

Makefile文件编写

Makefile工作原理

2.4 GDB调试

概述

准备工作

调试步骤

总结


1 概述

环境搭建:CentOS7 VMware虚拟机搭建、Xshell通过ssh远程连接登录主机、文件传输FileZilla

软件环境:gcc, gdb, make安装

参考资料:课程列表_牛客网 (nowcoder.com)

2 Linux程序运行基础

2.1 Gcc编译

预处理:-E头文件拷贝、宏替换和注释删除,文本操作。gcc test.c -E -o test.i

编译:-S把代码翻译成汇编代码。gcc test.i -S -o test.s

汇编:-c把汇编代码反汇编成目标代码。gcc test.s -c -o test.o

链接:-o生成可执行文件。gcc test.o -o test

快速生成:gcc test.c -o test 但其中也包含了上面四个步骤

 

 注:C程序尽量用gcc编译,cpp程序尽量用g++编译。

 -D在编译的时候指定一个宏,条件编译,#ifdef DEBUG ... #endif -DDEBUG 可以用来调试信息log的输出。

2.2 静态库和动态库

静态库的制作与使用

静态库的制作

静态库的使用

常见工程目录安排

编译注意:头文件路径,静态库名称,静态库路径

动态库的制作与使用

动态库(共享库)的制作

动态库(共享库)的使用

编译使用报错

动态库工作原理

解决动态库报错问题,把动态库加载到某一路径

1.(1)配置环境变量LD_LIBRARY_PATH 临时的修改

(2)将环境变量配置语句插入到~/.bashrc中,用户级的永久生效

(3)将环境变量配置语句插入到/etc/profile中,系统级永久生效

2.将动态库路径添加到/etc/ld.so.conf文件列表中 source ldconf使生效

3.将动态库放到/lib或者/usr/lib文件目录(不推荐)

静态库与动态库的对比

 

 库较小时,可以制作成静态库

 库比较大时,可以制作成动态库

2.3 Makefile知识

概述

Makefile文件编写

Makefile文件命名和规则

编写Makefile文件

编译运行

Makefile工作原理

 

简化编写

 

 

 例:一步一步简化,熟悉常用规则

 

 

 

2.4 GDB调试

概述

准备工作

调试步骤

 

 例:

总结

此篇文章总结了Linux编写程序的基础知识,对指导Linux系统编程具有一定的帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值