开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第27天,点击查看活动详情
一.GCC
1.什么是GCC
安装命令: sudo apt install gcc g++
查看版本: gcc/g++ -v/--version
2.编程语言的发展
3.GCC工作流程
4.GCC常用参数选项
源代码 -->预处理后源代码
g++ hello.cpp -E g++ -E hello.cpp //生成hello.i
g++ hello.cpp -E -o ms.i //生成ms.i
预处理后源代码 -->汇编代码
g++ hello.i -S g++ -S hello.i
g++ hello.i -S -o hello.s
汇编代码 -->目标代码/库代码/启动代码/其他目标代码
g++ hello.s -c
g++ hello.s -c -o hello.o
直接生成可执行程序,汇编代码,目标代码
g++ hello.cpp, g++ hello.cpp -S, g++ hello.cpp -c
5.什么是库
库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库,它提供给使用 者一些可以直
接拿来用的变量、函数或类。
◼ 库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只
是库不能单独运行。
◼ 库文件有两种,静态库和动态库(共享库),区别是:静态库在程序的链接阶段被复制 到了程序中;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加 载到内存中供程序调用。
◼ 库的好处:1.代码保密 2.方便部署和分发
6.静态库的制作
将add.c div.c mult.c sub.c 打包静态库
先将add.c div.c mult.c sub.c转为add.o div.o mult.o sub.o
g++ -c add.c div.c mult.c sub.c
然后将其打包
ar rcs libcalc.a add.o div.o mult.o sub.o
-I 指定 include 包含文件的搜索目录
gcc main.c -o app -I ./include/
-l 在程序编译的时候,指定使用的库
-L 指定编译的时候,搜索的库的路径
gcc main.c -o app -I ./include/ -l calc -L./lib