ubuntu16.04下建立共享库并使用出现了问题

图片描述

lib.h

/*lib.h: pro1.c, pro2.c*/

#ifndef _LIB_H_

#define _LIB_H_

void pro1(int);

void pro2(char *);

#endif

pro1.c

#include<stdio.h>

void pro1(int arg)

{

printf("hello: %d\n",arg);

}

pro2.c

#include<stdio.h>

void pro2(char *arg)

{

printf("hello: %s\n",arg);

}

main.c

#include"lib.h"

int main()

{

pro2("Linux");

return 0;

}

图片描述

回答:

前一个gcc语句是对的。后一个缺少了-lfoo,而大写L参数是指定库的搜索路径的目录,当前目录就不用这个参数了。
主要是你的库没有在系统搜索路径里,Linux默认是不加载当前目录的库的。你需要指定LD_LIBRARY_PATH环境变量,设置这个目录的路径(绝对路径)进去。
方法二是在/etc/ld.so.conf.d/目录下添加一个文件比如foo.conf,内容是这个目录的绝对路径。然后sudo ldconfig。

以上是 ubuntu16.04下建立共享库并使用出现了问题 的全部内容, 来源链接: utcz.com/p/194048.html

回到顶部