库
已经编译过的代码仓库
库文件: 动态库 和 静态库
静态库:lib+库名.a
ar:制作静态库
-r:将某个.o文件插入到静态库
-c:创建一个新的静态库
-s:重置静态库索引
ar -rcs libDArray.a DynamicArray.o
将 DynamicArray.o编入libDArray.a中
静态库的使用:编译期直接编译到程序当中
动态库(共享库):lib+库名.so(windo系统:.dll)
在编译期不会编译到程序中,而是运行时链接的
-shared:制作动态库
-fPIC:生成的库代码位置独立
gcc -shared -fPIC DynamicArray.c -o LibDArray.so
ldd:查看程序依赖的库
ldd ./main
依赖动态库的程序运行时需要带上动态库
sudo cp 库 /usr/lib
sudo cp 头文件 /usr/include
sudo cp LibDArray.so /usr/lib
sudo cp DynamicArray.h /usr/include/
将头文件和库文件分别拷到这两个地址
跨语言编译
当在C++文件中与C的库联合编译时 ps:在.h文件中包
#ifdef __cplusplus
extern "C"//以C的形式命名函数
{
#endif
int func();
#ifdef __cplusplus
}
#endif
用extern “C” 将函数包起来