//此时目录下的文件
[HLinuxH@M-S temp]$ ls
-
main.c static_lib.a static_lib.c static_lib.h static_lib.o
//第一种方法
//用-l参数指定静态库名为static_lib.a,后面紧跟库名,不要有空格。此参数的应用要放在编译源文件名称之后
-
[HLinuxH@M-S temp]$ gcc main.c -lstatic_lib.a -o main
-
/usr/bin/ld: cannot find -lstatic_lib.a
-
collect2: ld 返回 1
//但是链接程序ld提示错误,说找不到这个文件
//第二种方法
//用-L指定库文件的搜索路径,下面的“.”表示当前路径。
-
[HLinuxH@M-S temp]$ gcc -L. main.c -o main
-
/tmp/ccgc4FO5.o: In function `main':
-
main.c:(.text+0x42): undefined reference to `add'
-
main.c:(.text+0x67): undefined reference to `sub'
-
main.c:(.text+0x8c): undefined reference to `mul'
-
collect2: ld 返回 1
//还是错误,此时提示发现没有定义的函数,(但函数定义
//在库里面,也即说没有找到库)
//第三种方法
//用-static选项对库进行链接,指定库位置和名称
-
[HLinuxH@M-S temp]$ gcc main.c -static ./static_lib.a -o main
-
/usr/bin/ld: cannot find -lc
-
collect2: ld 返回 1
//还是错误,找不到lc
-
[HLinuxH@M-S temp]$
/********************************************************************************************/
/********************************************************************************************/