Linux C:生成、调用静态库/动态库,.a,.so
一、代码1.1 说明 hello.h、hello.c是生成库的代码。 main.c是调用库的代码。1.2 代码hello.h:#ifndef HELLO_H#define HELLO_Hvoid hello(const char* name);#endifhello.c:#include#include "hell
一、代码
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
更多推荐
所有评论(0)