《UNIX环境高级编程第三版》apue.h等源码文件的编译安装
操作系统:Ubuntu 12/14
1、下载书中的源代码:点击下载
2、编译
tar -zxvf *.tar.gz
cd ./apue.3e
make
报错:
can,t find -lbsd
解决办法:
添加 libbsd.a 的静态链接库
sudo apt-get install libbsd-dev
3、继续编译
make
4、在编译成功的基础上,安装 apue.h 文件及其对应的静态链接库 libapue.a
sudo cp ./include/apue.h /usr/local/include/
sudo cp ./lib/libapue.a /usr/local/lib/
mac中,拷贝头文件 sudo cp ./include/apue.h /usr/local/include/
为什么要将 libapue.a 移到 /usr/local/lib 中呢?
因为 libapue.a 是 apue.h 头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。
查看 /etc/ld.so.conf.d/libc.conf 你会发现 gcc 在搜索链接库的时候默认会去搜索 /usr/local/lib/ 中的文件,所以我们将其放在这里,一劳永逸。
5、环境搭建成功了,开始测试
gcc 1-3.c -o 1-3 -lapue #编译时需要链接静态库libapue.a,libapue.a在这里要写成apue,具体的gcc使用规则可以 man 一下
6、看见1-3执行程序了吧,赶紧执行一下(本例1-3就是书上的第一个程序---ls程序)
./1-3 /lib

注意:
libbsd库 需要到 http://pkgs.org/search/?query=libbsd&type=smart 确定下载的版本,执行安装(yum/apt-get)。
CentOS 6系列/x86_64,安装 libbsd.a,参考代码如下(注意安装顺序不要变):
yum -y install libbsd-0.6.0-1.el6.art.x86_64.rpm
yum -y install libbsd-devel-0.6.0-1.el6.art.x86_64.rpm
参考:
http://blog.csdn.net/freestyle4568world/article/details/39269129
http://albertcn.blog.163.com/blog/static/209420145201410542016796
CLion 的 CMakeLists.txt 文件内容参考如下:
cmake_minimum_required(VERSION 2.8)
project(apue)set(SOURCE_FILES main.c)
add_executable(main ${SOURCE_FILES})include_directories(/usr/local/include)
target_link_libraries(main /usr/local/lib/libapue.a)
《UNIX环境高级编程第三版》apue.h等源码文件的编译安装的更多相关文章
- 《UNIX网络编程(第3版)》unp.h等源码文件的编译安装
操作系统:Mac OS X 10.11.5 1.下载书中的源代码:点击下载 2.切换到解压后的目录 unpv13e,先查看下 README,依次执行: ./configure cd lib make ...
- 【转】apue《UNIX环境高级编程第三版》第一章答案详解
原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...
- Linux - Unix环境高级编程(第三版) 代码编译
Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebo ...
- Unix环境高级编程第三版中实例代码如何在自己的linux上运行的问题
学习Linux已经有2个月了,最近被期末考试把进度耽误了,前几天把Unix环境高级编程看了两章,感觉对Linux的整体有了一些思路,今天尝试着对第一章涉及到的一个简单的交互式shell编译运行一下,结 ...
- APUE(unix环境高级编程)第三版---first day---部署书中实例的运行环境(apue.h)
操作环境:RHEL7.0 部署apue.h实例运行环境 1.下载头文件src.3e.tar.gz 2.解压 tar zxvf src.3e.tar.gz 3.创建普通用户(我仿照书上创建的sar用户) ...
- Linux - Unix环境高级编程(第三版) 源代码编译(即头文件apue.h如何使用问题)【转】
本文转载自:http://blog.csdn.net/hadas_wang/article/details/43203795 1. 下载代码:http://www.apuebook.com/code3 ...
- 《UNIX环境高级编程(第3版)》
<UNIX环境高级编程(第3版)> 基本信息 原书名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison ...
- unix环境高级编程第三章笔记
文件描述符 1.文件描述符的概念 对于内核而言,所有打开的文件都会用一个文件描述符来引用,打开或和创建一个新文件的时候,内核会给进程返回一个文件描述符,而当使用read write时,可以使用这个文件 ...
- UNIX环境高级编程-第三章习题
1,当读写磁盘文件时,read,write等函数确实是不带缓冲机制的吗?请说明原因. 答:所有磁盘I/O都要经过内核的块缓存区(即内核的缓冲区高速缓存).唯一例外的是对原始磁盘设备的I/O,但是我们不 ...
随机推荐
- 第3章 Linux常用命令(3)_文件搜索命令
3. 文件搜索命令 3.1 文件搜索:find (1)find命令 命令名称 find 命令所在路径 /bin/find 执行权限 所有用户 语法 find [搜索范围] [-选项] [匹配条件] - ...
- HOLOLENS程序发布,这个界面调用的图片
SplashScreen.scale-200.png 1240 x 600
- python_面向对象编程
一.编程范式 程序员通过特定的语法+数据结构+算法告诉计算机如果执行任务,实现这个过程有不同的编程方式,对这些不同的编程方式进行归纳总结得出来的编程方式类别,即为编程范式 编程范式:面向过程编程.面向 ...
- Linux 进程间通讯详解七
上图的一台主机服务器架构的重大缺陷是容易死锁 因为客户端,服务器都往同一消息队列中发送接收消息,假设消息队列已经满了,此时客户端无法向队列中发送消息,阻塞了,而服务器接收完一条消息后,想向消息队列发送 ...
- 优才网Go名库讲解全套教程
教程内容:04-macaron03-goconvey02-xorm01-goconfig00-introduction 下载地址:http://www.fu83.cn/thread-322-1-1.h ...
- Js前端代码异常监控
window.onerror = function(msg,url,line,col,error){ //没有URL不上报!上报也不知道错误 if (msg != "Script error ...
- 《Java程序设计与数据结构教程(第二版)》学习指导
<Java程序设计与数据结构教程(第二版)>学习指导 欢迎关注"rocedu"微信公众号(手机上长按二维码) 做中教,做中学,实践中共同进步! 原文地址:http:// ...
- DbUtility v3 背后的故事
DbUtility v3 背后的故事 时间 DbUtility v3构思了差不多大半年,真正开发到第一个版本发布到NuGet却只花了50天.中途大量时间在完善 Jumony 3,只有三周来开发DbUt ...
- 【转】解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一个.NET Core的东 ...
- SpringBoot应用部署[转]
在开发spring Boot应用的过程中,Spring Boot直接执行public static void main()函数并启动一个内嵌的应用服务器(取决于类路径上的以来是Tomcat还是jett ...