Linux中gcc命令编译选项练习题
题目
1 gcc命令的常用选项:-I、-c、-o 、-g、-Wall、
1)列出这些常用选项的作用
2)使用这些选项编译程序,并截图
2.分析静态链接库与动态链接库各自的优缺点
3.静态链接库与动态链接库的创建方法和使用方法
4.gdb调试程序截图(练习:列出程序清单、运行程序、设置断点、清楚断点、显示程序变量值、单步执行)
参考答案
1gcc命令的常用选项:-I、-c、-o 、-g、-Wall、
1-l参数就是用来指定程序要链接的库
2.-c只进行预处理、编译和汇编
3.-o file指定生成的输出文件名为file
4-g
5-wall
2.分析静态链接库与动态链接库各自的优缺点
静态链接的特点是:
优点:
对运行环境的依赖性较小,具有较好的兼容性
缺点:
生成的程序比较大,需要更多的系统资源,在装入内存时会消耗更多的时间库函数有了更新,必须重新编译应用
程序动态链接的特点:
优点:
在需要的时候才会调入对应的资源函数简化程序的升级;有着较小的程序体积实现进程之间的资源共享(避免重复拷贝)
缺点:
依赖动态库,不能独立运行动态库依赖版本问题严重 制作静态链接库:静态链链接库在linux中后缀为.a, 以lib开头如: libtestlib.a
3.静态链接库与动态链接库的创建方法和使用方法
1. 制作:#gcc -c mylib.c -o mylib.o //编译目标文件#ar rc libtestlib.a mylib.o //作静态库
2. 静态库使用:库函数、头文件均在当前目录下
3. #gcc -o my_test mytest.c libtestlib.a
4. 库函数、头文件假设在/opt目录
5. #gcc -o mytest mytest.c -L/opt -Itestlib -I/opt
6. 制作静态链接库:静态链链接库在linux中后缀为.a, 以lib开头如: libtestlib.a1.#gcc -c mylib.c -o mylib.o
7. //编译目标文件#ar rc libtestlib.a mylib.o
8. //作静态库静态库使用:库函数、头文件均在当前目录下
9. #gcc -o my_test mytest.c libtestlib.a
10. 库函数、头文件假设在/opt目录
11. #gcc -o mytest mytest.c -L/opt -Itestlib -I/opt
12. 制作动态链接库:#gcc-shared mylib.c -o libtestlib.so
13. //使用gcc编译、制作动态链接库动态链接库的使用1库函数、头文件均在当前目录下
14. #gcc-o my_test mytest.c libtestlib.so2
15. 库函数、头文件假设在/opt目录
16. #gcc -o mytest mytest.c-L/opt -Itestlib -I/opt
4.gdb调试程序截图(练习:列出程序清单、运行程序、设置断点、清楚断点、显示程序变量值、单步执行)