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

来源:互联网 发布:91熊猫桌面软件 编辑:程序博客网 时间:2024/06/06 00:41

一、问题描述: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这个库。

0 0
原创粉丝点击