Linux安装apue.3e(基于ubuntu12.0.4+centos6.8)
来源:互联网 发布:二手软件app软件哪个好 编辑:程序博客网 时间:2024/05/16 12:32
1.在网上下载书中源代码,百度搜索apue
2.解压文件:tar -zxvf *.tar.gz
3.cd apue.3e/
4.make
在这个过程中,你会看到最后由于can,t find -lbsd而不能make成功,解决办法是添加libbsd.a的静态链接库
[u1@h1 apue.3e]$ make
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE -c -o rwlock.o rwlock.c
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE timedlock.c -o timedlock -L../lib -lapue -pthread -lrt -lbsd
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE barrier.c -o barrier -L../lib -lapue -pthread -lrt -lbsd
/tmp/ccb9gvom.o: In function `thr_fn’:
barrier.c:(.text+0x6e): undefined reference to `heapsort’
collect2: ld 返回 1
make[1]: *** [barrier] 错误 1
make[1]: Leaving directory `/home/albert/Documents/progs/apue.3e/threads’
make: *** [all] 错误 1
[u1@h1 apue.3e]$
解决办法
1)ubuntu
sudo apt-get install libbsd-dev
2) fedora, redhat, centos
2.1) 下载两个包
2.1a) i386
wget ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/i386/libbsd-0.6.0-1.el6.i686.rpm
wget ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/i386/libbsd-devel-0.6.0-1.el6.i686.rpm
2.1b) x86_64
wget ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/x86_64/libbsd-0.6.0-1.el6.x86_64.rpm
wget ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/x86_64/libbsd-devel-0.6.0-1.el6.x86_64.rpm2.2)安装如上包,注意命令顺序,需要root权限
2.2a) i386
yum install libbsd-0.6.0-1.el6.i686.rpm
yum install libbsd-devel-0.6.0-1.el6.i686.rpm
2.2b) x86_64
yum install libbsd-0.6.0-1.el6.x86_64.rpm
yum install libbsd-devel-0.6.0-1.el6.x86_64.rpm2.3)然后继续编译apue
[u1@h1 apue.3e]$make
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE -c -o asyncsocket.o asyncsocket.c
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE -c -o openmax.o openmax.c
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE -c -o sleep.o sleep.c
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE -c -o sleepus_poll.o sleepus_poll.c
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE -c -o sleepus_select.o sleepus_select.c
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE getpwsvr4.c -o getpwsvr4 -L../lib -lapue -pthread
make[1]: Leaving directory `/home/u1/Documents/progs/apue.3e/exercises’
[[u1@h1 apue.3e]
5.make(again)
6.在编译成功的基础上,我们进行安装apue.h文件及其对应的静态链接库libapue.a
为什么要将libapue.a移到/usr/local/lib中呢?原因是libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。
查看ld.conf.d/libc.conf你会发现gcc在搜索链接库的时候默认会去搜索/usr/local/lib/中的文件,所以我们将其放在这里,一劳永逸。。。。(不过自己要知道哦)
7.以上环境搭建成功了,下面是测试。
8.gcc 1-3.c -o 1-3 -lapue
9.看见1-3执行程序了吧,赶紧执行一下
10.最后说一下本例1-3就是书上的第一个程序---ls程序。
- Linux安装apue.3e(基于ubuntu12.0.4+centos6.8)
- APUE.3e 安装(基于ubuntu12.0.4)
- APUE.3e 安装(基于ubuntu12.0.4)
- APUE.3e 安装(基于ubuntu12.0.4)(转自涛哥)
- APUE.3e 安装 Ubuntu
- apue.3e源码编译、环境配置(centos6.7)
- ubuntu12.04配置apue.2e环境
- apue.2e安装详解
- APUE.3e 安装(ubuntu 14.04LTS)
- UNIX 环境高级编程(一) apue.h 文件与apue.3e的安装
- 《Unix环境高级编程第3版》apue.3e在Linux上无法安装的问题
- Linux下OpenSSL的安装全过程(CentOS6.3 x86 + Openssl 1.1.0e)
- Linux下OpenSSL的安装全过程(CentOS6.3 x86 + Openssl 1.1.0e)
- 【Linux】Centos6.8安装rabbitmq
- 【Linux】Centos6.8安装Redis
- 【Linux】Centos6.8安装Nginx
- 【Linux】Centos6.8安装MongoDB
- 【Linux】Centos6.8安装docker
- A100 正确使用递归和灵活使用if
- Hdu 5193 Go to movies Ⅱ(带删除数插入数的逆序数对,块状链表)
- OSGi - 第01章环境准备
- LibGdx文档译读(十三) AssetManager类
- python中__init__.py文件的作用
- Linux安装apue.3e(基于ubuntu12.0.4+centos6.8)
- uclinux很久前笔记12
- Linux操作命令符(基本)
- 18 UI美化自定义形状shape
- 洛谷 P1118 [USACO06FEB] 数字三角形Backward Digit Su…
- booking各地联系方式
- UVa 11178 Morley's Theorem
- JS-验证码倒计时
- 乐乐的部分面试题总结1