linux 动态链接库的创建和使用--静态连接
/*
 * author: hjjdebug
 * date: 2012
 * title: linux 动态链接库的创建和使用--静态连接
*/

静态连接,不需要用户额外写代码,链接程序(gcc等)链接时指明动态连接库,并将所有外部符号从连接库中都找到。

linux 动态链接库的创建和使用
1. 先创建一个动态链接库。源码如下:
$ cat max.cpp
int max(int a, int b)
{
        return a>b? a:b;
}
编译生成动态库
g++ -shared -o libmax.so max.cpp

2. 再创建一个测试用例,源码如下:
$ cat test.cpp

#include <stdio.h>

int max(int a, int b);

int main(int argc, char *argv[])
{
        int a=max(3,5);
        printf("the bigger is %d\n",a);
        return 0;
}
编译生成可执行文件
g++ -o test test.cpp -lmax -L`pwd`

这里说明一下 -lmax 是指明要链接libmax.so 文件 -L`pwd` 是说链接库位置在本地。
如果你把库copy 到系统路径下,通常是/lib 或/usr/lib 下, 则-L 选项不用添加。

3. 运行可执行文件。
$ ./test
如果你没有copy 库到系统目录下,会有加载错误,如下:
./test: error while loading shared libraries: libmax.so: cannot open shared object file: No such file or directory
把库copy 到系统目录。
sudo cp libmax.so /lib
再次执行 ./test, 成功!
the bigger is 5

遇到问题,请用工具查询。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hejinjing_tom_com/article/details/7392455
个人分类: C 编程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

linux 动态链接库的创建和使用--静态连接

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭