方法1
———————————————
Linux下 静态库 一般为.a为扩展名 类似 lib***.a 的文件名。利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。
———–func.h———–
#include <stdio.h>
void ShowHello();
———-func.c———–
#include “func.h”
void ShowHello()
{
printf(“show hello func called \n”);
}
gcc -c func.c 生成 func.o 目标文件
ar -rc libTest1.a func.o 生成静态库 libTest1.a (文件名必须以lib开头)
——-uselib.c—————–
#include “func.h”
int main()
{
ShowHello();
return 0;
}
gcc -c uselib.c 编译生成 uselib.o 目标文件
最后执行 gcc -o uselib -L/mnt/hgfs/LinuxShare/cplus/TestLib1 uselib.o -lTest1 生成目标文件 uselib
-L参数后为静态库所在路径 -l参数后为 去掉 lib和 .a 的静态库名称
./uselib 执行结果为 show hello func called
————————————————
版权声明:本文为CSDN博主「mtour」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/mtour/article/details/8274193
方法2
——————————————————————————————
坚持自己的选择酷爱嵌入式、linux、网络