您的位置:首页 > 运维架构 > Linux

《Unix环境高级编程第3版》apue.3e在Linux上无法安装的问题

2015-06-06 12:54 363 查看
一、问题描述:make,遇到错误:cannot find -lbsd 。

二、原因:缺少缺少libbsd文件。

三、解决方法:

1、Fedora 系列(通过yum来下载更新软件)

#yum install libbsd

#yum install libbsd-devel

安装完成后就可以去apue.3e目录make了。

2、Ubuntu 系列(通过apt-get来下载和更新软件)

# apt-get
install libbsd-dev

安装完成后就可以去apue.3e目录make了。

编译完成后

#cp
./include/apue.h /usr/include/

#cp
./lib/libapue.a /usr/local/lib/

为什么要将libapue.a移到/usr/local/lib中呢?

原因是libapue.a是apue.h头文件中包含的所有函数

及宏定义的具体实现,是一个静态链接库。


查看ld.conf.d/libc.conf你会发现gcc在搜索链

接库的时候默认会去搜索/usr/local/lib/中的文件,

所以我们将其放在这里。

这样当你编写了一个源代码,你用gcc编译的时候就不用在命令后面加
 -lapue

否则会出现类似下面的错误:

/tmp/cchudidN.o: In function `main': 
1_3.c:(.text+0x20): undefined reference to `err_quit' 
1_3.c:(.text+0x5b): undefined reference to `err_sys' 
collect2: ld returned 1 exit status

这是因为你在编译的时候没有添加libapue.a这个库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux unix 源代码 编程