Gcc编译
利用gcc 生成应用时如果不加-o 和应用名,默认生成a.out
可以用./ a.out打开
Gcc工作流程
可执行程序Windows系统中为.exe
Linux系统中为.out
g++也可以编辑c程序
gcc也可以编译cpp代码,只是在编译阶段gcc不能自动共和C++程序使用的库进行联接,所以通常用g++完成链接。
gcc命令不能自动和C++程序使用的库联接,但在编译阶段g++会自动调用gcc,二者等价。
Gcc常用参数选项
gcc -DDEBUG
相当于在test.c开头#define DEBUG,方便我们进行调试信息输出,一般测试参数在发布的时候不用输出,在调试的时候才输出。
因此测试参数,或者调试信息可以写在#ifdef DEBUG 和#endif中间。
-Wall 会提示警告,比如代码中定义了a但没有使用,会浪费内存。
静态库
库是计算机上的一类文件,可以看成是代码仓库,提供给使用者一些可以直接拿来用的变量、函数或类。
是特殊的程序,不能单独运行。
库文件分为静态库、动态库(共享库)。
静态库载程序的链接阶段被复制到程序中,
动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序使用。
库的好处:代码保密。方便部署和分发。
命名规则
Linux:libxxx.a
lib:前缀(固定)
xxx:库名字,自己起
.a:后缀(固定)
Windows:libxxx.lib
静态库的制作
gcc获得.o文件
将.o文件打包,使用ar工具 (archive)
ar rcs libxxx.a xxx.o xxx.o
r -将文件插入备存文件中
c -建立备存文件
s -索引
将head下的加减乘除函数打包成静态库
学习进度
Linux系统编程入门 01:18:11