linux动态链接

1, 编译,使用-shared和-fpic 生成动态链接库
库源码:test.c

创新互联主营珙县网站建设的网络公司,主营网站建设方案,成都app软件开发公司,珙县h5小程序开发搭建,珙县网站营销推广欢迎珙县等地区企业咨询

#include 
#include 
#include 

static void printline(int len)
{

    int i;

    for(i = 0;i

头文件:test.h

#ifndef __TEST_H__
#define __TEST_H__

void print(char * s);

#endif

编译库文件:

gcc test.c -shared -fpic -o libtest.so

2.编译测试代码

测试代码:main.c

#include "test.h"

int main()
{
    char teststr[] = "hello world";

    print(teststr);

    return 0;

}

编译测试代码

    gcc  main.c -L./ -ltest -o main

3.运行

当运行时,发现找不到库文件
./main: error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory

这个是linux库文件搜索路径的问题,有两个解决方式

  1. 在/etc/ld.so.conf.d/下编写配置文件,指定库路径,然后使用ldconfig去刷新缓存
  2. 在执行前设置环境变量 LD_LIBRARY_PATH,指定当前的路径,再去执行时,则现在本地去搜索
root@GFD:~/workspace/so_test# export LD_LIBRARY_PATH=./
root@GFD:~/workspace/so_test# ./main
===========
hello world
===========

文章名称:linux动态链接
转载注明:http://bzwzjz.com/article/jgpeoh.html
Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 企业网站建设 网站建设费用 网站建设公司 梓潼网站设计 成都网站设计 盐亭网站设计 高端定制网站设计 手机网站建设套餐 外贸营销网站建设 四川成都网站制作 成都网站建设 定制网站设计 成都网站设计公司 网站建设 成都网站建设 网站建设公司 网站建设 网站建设 营销网站建设 重庆网站建设 温江网站设计 成都网站建设