无论是软件还是硬件,都需要库的支持。这是因为复杂的设计都是由小的模块组成。但是这些小模块常常由第三方开发,第三方不想提供源代码。因此以库的形式提供模块,甚至库都是加密的。
1 软件库
软件库分静态链接库和动态链接库。因为库只在链接时需要,根据链接时刻。静态链接是在应用编译阶段,动态链接是在应用运行时刻。
这里需要区分库的编译和应用的编译。实际上应用运行时,用户不会感觉命令有区别,都是执行应用的名字。
静态库的编译目标文件命令:gcc -c
静态库的创建命令:ar -crv
动态库的编译目标文件命令:gcc -fPIC -c
动态库的创建命令:gcc -shared
用下面参数指定应用编译时,链接库的路径及其库名:
-L -l
链接器优先从以上指定寻找动态库,找不到,再找静态库。
有时用LD_LIBRARY_PATH环境变量指定库的搜索路径。
2 硬件IP库