Linux 静态库链接测试(.a)(静态库路径export LIBRARY_PATH测试)

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 静态库链接测试(.a)(静态库路径export LIBRARY_PATH测试)相关的知识,希望对你有一定的参考价值。

做个测试,把add.c编译打包成静态库,给main.c链接:

  1. main.c
#include <stdio.h>
#include <add.h>

int main()

	int result = add(1, 2);	
	printf("result = [%d]\\n", result);
	return 0;

  1. add.h
#include <stdio.h>
#include <add.h>

int add(int a, int b)

	return a+b;

  1. add.h
int add(int a, int b);
  • 命令

将add.c编译成add.o

gcc -c add.c -o add.o -I./

将add.o打包成libadd.a

ar rcs -o libadd.a add.o

编译main.,c,链接libadd.a,输出a.out

gcc main.c -I./ -L./ -ladd
#或
gcc main.c -I./ libadd.a
#或
gcc main.c -I./ -ladd	# libadd.a在当前目录下
#或
gcc main.c -I./ -ladd	# libadd.a不在当前目录下,需先export LIBRARY_PATH=xxx,echo $LIBRARY_PATH查看对不对

参考文章:【C语言】静态链接库文件(.a)和object文件(.o)区别

以上是关于Linux 静态库链接测试(.a)(静态库路径export LIBRARY_PATH测试)的主要内容,如果未能解决你的问题,请参考以下文章

Linux链接库一(动态库,静态库,库放在什么路径下)

Makefile 链接静态库

Linux 动态链接库包含静态链接库的方法

iOS 动态库+静态库

Xcode生成静态库和bundle

制作静态动态链接库