Linux上生成动态库的方法比在Windows平台上简单很多。得益于强大的gcc,只需一步就可以生成共享库。
编写源码
写一个简单的例子, MyLibrary.h和MyLibrary.c
#ifndef _MYLIBRARY_H__
#define _MYLIBRARY_H__
void MyPrint()
#endif
#include <stdio.h>
#include "MyLibrary.h"
void MyPrint()
{
printf("this is message from MyLibrary\n");
}
编译共享库
gcc -fPIC -shared MyLibrary.c -o libMyLibrary.so.1
fPIC是编译选项,表示位置无关代码(Position Independent Code), -shared是链接选项,表示生成共享库而不是可执行文件。
上述命令还可以分为两个步骤
gcc -c -fPIC MyLibrary.c -o MyLibrary.o
gcc -shared MyLibrary.o -o libMyLibrary.so.1