《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这个库。
二、原因:缺少缺少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 socket 初步
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量