Linux:Ubuntu下链接动态库

/ Linux / 没有评论 / 1869浏览

让程序找到动态库(.so)

  1. 将生成的动态库拷贝到/usr/lib或者/lib下;
  2. 配置LD_LIBRARY_PATH = $LD_LIBRARY_PATH:.;
  3. 添加配置文件,/etc/ld.so.conf.d/my.conf,用ldconfig命令冲洗你刷新配置文件。

参考文章

demo: hello.c动态库源文件,hello.h动态库头文件

文件1:

//hello.c
#ifndef HELLO_H
#define HELLO_H

void hello(const char *name);

#endif //HELLO_H

文件2:

//hello.c
#include <stdio.h>

void hello(const char *name)
{
    printf("Hello %s!\n", name);
}

编译命令:

//将hello.c编译成.o文件;
gcc -c hello.c

//生成动态库
gcc -shared -fPIC -o libmyhello.so hello.o

写个测试程序main.c

#include "hello.h"

int main()
{
    hello("ryan_naiquan");
    return 0;
}

使用动态库:

gcc -o main main.c -L. -lmyhello

运行 :

./main

如果出错,是未找到库文件,请按照文章开头添加库文件。