Linux C:生成、调用静态库/动态库,.a,.so

来源:互联网 发布:晟元数据 编辑:程序博客网 时间:2024/05/01 22:02

一、代码

1.1 说明

        hello.h、hello.c是生成库的代码。

        main.c是调用库的代码。

1.2 代码

hello.h:

#ifndef HELLO_H#define HELLO_Hvoid hello(const char* name);#endif

hello.c:

#include <stdio.h>#include "hello.h"void hello(const char* name){        printf("Hello %s\n", name);}

main.c:

#include "hello.h"int main(){        hello("everyone!");        return 0;}

二、生成、调用静态库(.a)

2.1 生成静态库

生成hello.o:

        gcc -c hello.c

生成静态库libmyhello.a:

        ar cr libmyhello.a hello.o

2.2 调用静态库

使用静态库编译程序

        gcc -o hello main.c -L. -lmyhello

执行程序

        ./hello 

三、生成、调用动态库(.so)

3.1 生成动态库

生成hello.o:

        gcc -c -fPIC hello.c

生成动态库libmyhello.so:

        gcc -shared -fPIC -o libmyhello.so hello.o

3.2 调用动态库

使用动态库编译程序 

       gcc -o hello main.c -L. -lmyhello

将动态库到/usr/lib64目录

        动态库默认到/usr/lib64目录下查找

        mv libmyhello.so /usr/lib64

执行程序

        ./hello 

3.3 运行结果



参考资料:

        在Linux中创建静态库.a和动态库.so:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html

0 0