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