今天给大家写一个我的读书笔记:Linux C/C++开发环境(1)
在Linux下玩过的朋友想必都知道gcc,gcc由很多组件组成:
gcc,g++(c++的编译工具),cpp(C预处理程序),ld(gnu链接程序).gas(gnu Assembler 主要用于处理汇编代码),gdb(gnu调试工具),prof(gnu 配置工具).
Linux 中的库:
1.静态库:链接时生成一份可执行文件的拷贝。
优点:每个可执行程序都有一份相同的拷贝以至于编译以后不需要库的支持就可以运行。
缺点:(1).内存和硬盘浪费较多,因为每个使用该库的可执行文件在内存中都需要有独立的副本。
(2).库更新困难,进行库更新时,系统中所有使用该库的程序都得重新编译。
(3).另一个与版本相关的问题,同一个系统中不同程序可能使用一个库的不同版本。
(4).在运行时无法加载其它代码。
2.共亨库:在运行时调用。在调用时,可以通过动态加载链接程序(ld.so)确保所需的全部库均已加载在内存中。
优点:可以动态加载。
缺点: (1)大多数情况下其声明比静态库少得多。
(2)有些系统恢复工具在没有提供共享库文件的情况下运行该程序。因此有些程序不能使用共享库编译。