《UNIX编程环境》的源代码的第二个版本Ubuntu下编

1.在http://www.apuebook.com下载源代码

2. 视图READ

[email protected]:/home/wl/mywork/apue.2e# cat -n README
     1	Read the file called DISCLAIMER.
     2
     3	Some source changes needed to be made after the book went out for the first
     4	printing.  I forgot to make corresponding changes in the source tree on the
     5	system used to develop the book.  The changes are summarized below.
     6
     7	1. lib/recvfd.c and sockets/recvfd.c - needed sys/uio.h on Mac OS X
     8	2. lib/sendfd.c and sockets/sendfd.c - needed sys/uio.h on Mac OS X
     9	3. stdio/buf.c - added code for Mac OS X
    10	4. threadctl/suspend.c - changed wait to waitloc to avoid symbol definition
    11		clash on Solaris
    12	5. include/apue.h - FreeBSD compiles work better if we rely on the default
    13		system settings.  Solaris needed a different XOPEN_SOURCE definition
    14		and also a CMSG_LEN definition.
    15
    16	To build the source, edit the Make.defines.* file for your system and set
    17	WKDIR to the pathname of the tree containing the source code.  Then just
    18	run "make".  It should figure out the system type and build the source for
    19	that platform automatically.  If you are running on a system other than
    20	FreeBSD, Linux, Mac OS X, or Solaris, you‘ll need to modify the makefiles
    21	to include the settings for your system.  Also, you‘ll probably need to
    22	modify the source code to get it to build on a different operating system.
    23	The example source was compiled and tested using FreeBSD 5.2.1, Linux 2.4.22,
    24	Mac OS X 10.3, and Solaris 9.
    25
    26	For FAQs, updated source code, and the lost chapter, see http://www.apuebook.com.
    27	Please direct questions, suggestions, and bug reports to [email protected]
    28
    29	Steve Rago
    30	May 30, 2005
[email protected]:/home/wl/mywork/apue.2e#

从第16行開始看到19行就能够了~~

3. 改动Make.defines.linux

# Common make definitions, customized for each platform

# Definitions required in all program directories to compile and link
# C programs using gcc.

WKDIR=/home/wl/mywork/apue.2e
#WKDIR=/home/sar/apue.2e
CC=gcc
COMPILE.c=$(CC) $(CFLAGS) $(CPPFLAGS) -c
LINK.c=$(CC) $(CFLAGS) $(CPPFLAGS) $(LDDIR) $(LDFLAGS)
LDDIR=-L../lib
LDLIBS=../lib/libapue.a $(EXTRALIBS)
CFLAGS=-DLINUX -ansi -I$(WKDIR)/include -Wall -D_GNU_SOURCE $(EXTRA)
CPPFLAGS=-I/home/wl/mywork/apue.2e/include
# Our library that almost every program needs.
LIB=../libapue.a

# Common temp files to delete from each directory.
TEMPFILES=core core.* *.o temp.* *.out typescript*
~                                                     

各位仅仅须要改动上面大字部分改为自己的路径就能够了~~~

4. 将apue.h和error.c两个文件copy到/usr/include下

5. 编辑apue.h

#vi apue.h

在最后一行 #endif /* _APUE_H */

前面加入一行 #include "error.c"。

6. 编译源文件

(以source\file文件夹为例)

#cd file

#cp linux.mk Makefile

#make

[email protected]:/home/wl/mywork/apue.2e/file# make
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  access.c  ../lib/libapue.a  -o access
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  cdpwd.c  ../lib/libapue.a  -o cdpwd
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  changemod.c  ../lib/libapue.a  -o changemod
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  devrdev.c  ../lib/libapue.a  -o devrdev
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  fileflags.c  ../lib/libapue.a  -o fileflags
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  filetype.c  ../lib/libapue.a  -o filetype
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  ftw4.c  ../lib/libapue.a  -o ftw4
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  hello.c  ../lib/libapue.a  -o hello
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  hole.c  ../lib/libapue.a  -o hole
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  longpath.c  ../lib/libapue.a  -o longpath
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  ls1.c  ../lib/libapue.a  -o ls1
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  mycd.c  ../lib/libapue.a  -o mycd
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  seek.c  ../lib/libapue.a  -o seek
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  testerror.c  ../lib/libapue.a  -o testerror
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  uidgid.c  ../lib/libapue.a  -o uidgid
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  umask.c  ../lib/libapue.a  -o umask
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  unlink.c  ../lib/libapue.a  -o unlink
gcc -DLINUX -ansi -I/home/wl/mywork/apue.2e/include -Wall -D_GNU_SOURCE  -I/home/wl/mywork/apue.2e/include -L../lib  zap.c  ../lib/libapue.a  -o zap
[email protected]:/home/wl/mywork/apue.2e/file#

编译成功

------------------------------------------------------------enjoy-------------------------------------------------------------------------------------

-----------------------------------------------------------the end-----------------------------------------------------------------------------------

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-11-10 05:17:33

《UNIX编程环境》的源代码的第二个版本Ubuntu下编的相关文章

unix网络编程环境搭建

unix网络编程环境搭建 新建 模板 小书匠 1.点击下载源代码 可以通过下列官网中的源代码目录下载最新代码: http://www.unpbook.com/src.html 2.解压文件 tar -xzvf upv13e.tar.gz 3.上传至阿里云 本人本地已经配置好,这次实验是将环境搭建至云服务器中. scp -r unpv13e [email protected]120.76.140.119:/root/program/unp // -r 上传文件夹  4.编译文件 cd unpv13

Unix NetWork Programming(unix环境编程)——环境搭建(解决unp.h等源码编译问题)

此配置实例亲测成功,共勉,有问题大家留言. 环境:VMware 10 + unbuntu 14.04 为了unix进行网络编程,编程第一个unix程序时遇到的问题,不能包含unp.h文件,这个感觉和apue.h差不多,不过这里需要编译源代码,为了以后方便,现在整理如下: 主要有两点一是生成libunp.a这个库,二是得到unp.h.config.h这两个个头文件. 1,安装编译器,为了齐全还是安装一下build-essential sudo apt-get install build-essen

记录一次配置unix网络编程环境的过程和遇到的问题

记录一次搭建unix网络编程环境过程中遇到的问题和总结 计算机环境虚拟机 linuxmint-18-xfce-64bit 1.打开unix网络编程.iso 把目录下的文件夹复制到某一目录,修改权限,可命令可鼠标操作. 2. [email protected] ~/unix/unpv13e $ sudo su [sudo] s 的密码: ss-Linux unpv13e # ./configure checking build system type... x86_64-unknown-linux

Unix/Linux环境C编程入门教程(24) MySQL 5.7.4 for Red Hat Enterprise 7(RHEL7)的安装

远观历史, MySQL的主要目的是为了能够在单处理器核心的商业服务器上运行.如今MySQL的一个变化用户可能不会注意到,那就是甲骨文已经开始重新架构MySQL的代码,使它大量的模块化.如软件解析器,优化和复制功能以模块化的形式被重写.该版本的查询性能得以大幅提升,比 MySQL 5.6 提升 1 倍,新版本的 MySQL 在测试平台上可达到每秒 512000 只读 QPS,而 MySQL 5.6 最高只能到 250000 QPS.该性能的提升是通过其 Memcached 插件实现的.同时该版本在

Unix/Linux环境C编程入门教程(12) openSUSECCPP以及Linux内核驱动开发环境搭建

1. openSUSE是一款优秀的linux. 2.选择默认虚拟机 3.选择稍后安装操作系统 4.选择linux  opensuse 5. 选择默认虚拟机名称 6.设置处理器为双核. 7.内存设置为2G 8. 选择网络地址转换 9.设置IO控制器 10. 选择默认磁盘类型 11.创建一个新的虚拟磁盘 12.设置磁盘大小 13.选择路径保存虚拟磁盘 14. 完成虚拟机创建 15.设置虚拟机 16.选择opensuse镜像 17.开启虚拟机 18.虚拟机启动 19.安装opensuse 20.安装程

Unix/Linux环境C编程入门教程(41) C语言库函数的文件操作详解

?? 上一篇博客我们讲解了如何使用Linux提供的文件操作函数,本文主要讲解使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存

《unix高级环境编程》终端 I/O——终端 IO 基本概述

终端基本概念 终端 IO 是一种字符型设备,终端特殊设备文件一般有以下几种: 串行端口终端:是使用计算机串行端口连接的设备,计算机把每个串行端口都看作是一个字符设备.串行端口所对应的设备名称 /dev/ttySn(n表示从0开始的整数): 伪终端:是成对的逻辑终端设备,例如 /dev/ptyp3 和/ dev/ttyp3(在设备文件系统中分别是 /dev/pty/m3 和/ dev/pty/s3 ),它们与实际物理设备并不直接相关: 控制终端:是当前进程的控制终端的设备特殊文件 /dev/tty

Unix/Linux环境C编程入门教程(1) Solaris 11 64bit环境搭建

Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. 本文就带大家来安装Solaris 11 64位并且配置好C/C++开发环境 本文所需软件下载地址 33.  F2 开始安装 34.待安装完成 按F8重启 35.重启后的界面  直接回车  启动 36. 登陆切换到我们刚刚创建的用户 待切成功的时候我们就加载合成的镜像文件sol-11_1-repo-full.iso 然后我们切换到root用户 37.先取消掉已连接的状态 38.重新

Unix/Linux环境C编程入门教程(5) Red Hat Enterprise Linux(RHEL)环境搭建

Unix/Linux版本众多,我们推荐Unix/Linux初学者选用几款典型的Unix/Linux操作系统进行学习. Red Hat Enterprise Linux是Red Hat公司的Linux发行版,面向商业市场,包括大型机.红帽公司从Red Hat Enterprise Linux 5开始对企业版LINUX的每个版本提供10年的支持[1].而Red Hat Enterprise Linux常简作RHEL. 1. 启动Vmware,如果没有安装的话,请看前面VMware安装的视频 2.选中