1 概述
环境搭建:CentOS7 VMware虚拟机搭建、Xshell通过ssh远程连接登录主机、文件传输FileZilla
软件环境:gcc, gdb, make安装
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系统编程具有一定的帮助。