Unix 环境高级编程书(第三版)源码编译(apue.3e)

源码地址

作者书本网站下载

Source Code

修改后地址 gitee地址:

https://gitee.com/dongposu/apue3e.git

编译环境

Ubuntu20.0 需要安装 gcc 和make

细节参考链接:这个博客讲的很详细了

https://blog.csdn.net/cxs5534/article/details/109324451

这里做部分解释:

问题一:关于apue.h文件

apue.h这个文件时时作者自己封装的头文件,包括里面有一些自己封装的c文件,如果需要单独运行书中代码片段,需要拷贝相关的文件,或者自己做个动态库

问题二:undefined reference to `major’

这里需要将 #include 添加再 apue.h文件中

问题二:error: ‘FILE’ {aka ‘struct _IO_FILE’} has no member named ‘_flag’; did you mean ‘_flags’?

修改文件:stdio/buf.c

_flag 替换成 _flags

_base 替换成 _IO_buf_end

_ptr 替换成 _IO_buf_base

问题三:/usr/bin/ld: 找不到 -lbsd

安装:sudo apt-get install libbsd-dev

问题四:如何执行示例代码

确保编译完成,没有error的情况后,接下来寻找书中的示例代码

书中图片示例的代码,为了方便查找,按照书本代码图片编号,创建了源码软连接都放在了 figlinks目录下,如书中示例代码 1.3对应fig1.3

Unix 环境高级编程书(第三版)源码编译(apue.3e)_第1张图片

  

这些文件与真正的源文件建立链接,如:fig1.3->../intro/ls1.c 。因为已经编译过,可以直接执行:./intro/ls1 /etc/

Unix 环境高级编程书(第三版)源码编译(apue.3e)_第2张图片

 

你可能感兴趣的:(linux,c/c++,unix,服务器,c语言)