静态库和动态库
静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。...动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。...在Linux中动态库一般后缀名为“.so”;在Windows中动态库一般后缀名为".dll"。gcc 在编译时默认使用动态库。...但是相应的, 空气炸锅放在家里的话也会占据家里的空间, 静态库拷贝到程序里也会导致程序变大。
而依赖动态库的程序, 动态库不能缺失, 一旦动态库缺失, 那么依赖动态库的很多文件就会出现问题。...验证Linux下的动态库和静态库连接
验证gcc 在编译时默认使用动态库:
我们手动要求程序连接静态库:
gcc默认生成的二进制程序,是动态链接的