一、代码

1.1 说明

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

        main.c是调用库的代码。

1.2 代码

hello.h:

#ifndef HELLO_H
#define HELLO_H

void 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

Logo

更多推荐