在ubuntu中编译Apue过程中碰到的问题

Ubuntu下编译c程序 1.创建一个c语言文件 touch hello.c 2.添加可以正确执行的c语言文件 vi hello.c *以上两步可以化简成 vi hello.c**新建并编写程序* 3.用gcc编译一下 并生成新的文件夹名为hello gcc hello.c -o hello 4.直接执行编译后的文件 ./hello ... 阅读详情
直接在 pue网站下载的源码

遇到的第一个错误是
gcc -DLINUX -ansi -I/tmp/apue.2e/include -Wall -D_GNU_SOURCE -DDEBUG  -c -o printd.o printd.c
In file included from /usr/include/i386-linux-gnu/bits/time.h:86:0,
                 from /usr/include/time.h:42,
                 from /usr/include/pthread.h:26,
                 from printd.c:11:
/usr/include/i386-linux-gnu/bits/timex.h:31:7: 错误: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘.’ token
make[2]: *** [printd.o] 错误 1
make[2]:正在离开目录 `/tmp/apue.2e/ipp'
make[1]: *** [linux] 错误 1
make[1]:正在离开目录 `/tmp/apue.2e'
make: *** [all] 错误 2
原因:
在apue.2e/ipp.h中定义了一个宏定义status和/usr/include/i386-linux-gnu/bits/timex.h中的成员status冲突

解决方法:
修改这个apue.2e/ipp/ipp.h文件中的宏名称,例如改为Status
然后将apue.2e/ipp/printd.c中977行的 hp->status 改为hp->Status

重新make后第一个问题解决了,出现第二个问题
ARG_MAX未定义
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打开apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行:
#include "apue.h"

之后编译就没问题了

下面我们把apue的头文件和库文件放入系统:

把头文件apue.h放到/usr/include/中,注意要以root用户操作以下命令
cp ~/apue.2e/include/apue.h /usr/include

cp ~/apue.2e/lib/libapue.a /usr/lib/

编译运行程序

gcc  源程序.c -o 可执行程序名 -lapue

注意 :若-lapue 写在了源程序的前面会出现错误 eg. gcc ls1.c -o ls1 -lapue

因为

.a在链接的时候,必须放在文件之后
.so在链接的时候,对位置没有要求,前后都可以
APUE学习记录(零)——Ubuntu14.04环境搭建 最近在学习 APUE,所以顺便将每日所学记录下来,一方面对所学知识进行梳理,另一方面也为了以后再看时方便。   这篇博文不涉及书上的知识,只是在虚拟机里安装了Ubuntu14.04,先做一些目前需要的环境配置,以后有新的需求再添加进来,故命名为APUE学习记录(零)。 阅读详情

相关推荐

Ubuntu12.04下编译成功的APUE附带源码

本资源是APUE随书附带源码库,在Ubuntu12.04下编译成功,可以直接在Ubuntu下进行Linux C学习,并且附有编译过程

Ubuntu20.04 编译运行apue.3e 避坑指南

报告权限不够: make[1]: 进入目录“/home/cxs/code/apue.3e/lib” make[1]: execvp: ../systype.sh: 权限不够 Makefile:6: ../Make.defines.: 没有那个文件或目录 make[1]: *** 没有规则可制作目标“../Make.defines.”。 停止。 make[1]: 离开目录“/home/cxs/code/apue.3e/lib” make: *** [Makefile:6:all] 错误 1 解决办法:chm

陈显森的博客 2302

Unity WebGL发布避坑指南:从内存设置到字体打包,一次搞定所有常见问题

本文详细解析Unity WebGL发布的完整流程,从内存设置到字体打包,提供全面的避坑指南。涵盖关键检查清单、内存与性能优化配置、资源处理专项优化及平台适配技巧,帮助开发者高效解决常见问题,确保项目顺利发布。

weixin_28693309的博客 147

在虚拟机的ubuntu系统里编译运行apue里面的程序

** 在虚拟机的系统里编译运行apue里面的程序 ** 1.下载源码:wget http://www.apuebook.com/src.3e.tar.gz 2.解压生成apue.3e文件夹:tar zxf src.3e.tar.gz 3.进入目录:cd apue.3e 4:编译运行libbsd库文件:sudo apt-get libbsd-dev 5.make文件夹apue.3e里的所有文件...

rench5的博客 325

DP3(3D Diffusion Policy)算法详解:从点云感知到扩散动作生成

DP3 的全称是:DP3 = 3D Diffusion Policy\boxed{\text{DP3 = 3D Diffusion Policy}}DP3 = 3D Diffusion Policy​对应论文题目是:3D Diffusion Policy: Generalizable Visuomotor Policy Learning via Simple 3D Representations该工作发表于 Robotics: Science and Systems(RSS)2024。DP3 是一种面向机器

u013250861的博客 347

算法-基于MACD的Adaboost股价涨跌预测模型

MACD是一个指标,具体用法是MACD>0看涨,反之看跌,果真是这样的吗?由于所有的技术指标都基于对历史数据的统计,指标的滞后性也就难免,有时候MACD明明大于0,股价仍然跌,有时候macd小于0,股价仍然涨。 本文基于Adaboost算法提出了一种基于macd的线性阀值分类器作为若分类器,通过在限定的解空间内寻找使得错误率最小的阀值和偏置,这样做避免了训练若分类器的复杂性,经验证,这种方法有效。

mtaxot的博客 8022

ubuntu 14.04 编译 apue.h

第一步:下载apue.h源码,百度搜索一般都能下载,下载后文件名一般为src.tar.gz 第二步:将其解压到/home/user (如果美柚user 目录,自己先行创建一个),解压后为apue.2e 第三步:编辑源码解压生成的apue.2e文件 夹下的Make.defines.linux...

chunxiaodi9628的博客 230

南京邮电大学电工电子基础B实验六(组合逻辑电路)

南京邮电大学电工电子基础B实验五(组合逻辑电路);电工电子;南京邮电大学;计算机学院;实验报告;电路图;

亦是远方的小地方 1万+

《UNIX环境高级编程》apue源代码Ubuntu下的编译

在编译书中例程时,常会报错,主要问题是以下两句代码 #include"apue.h" 这两个头文件并非Ubuntu系统自带的,是《UNIX环境高级编程》作者自己编写的用于定义及报错的头文件 解决方法: 1--下载APUE的代码(http://www.apuebook.com/src.tar.gz)并解压,笔者的目标地址为/home/jimmy/p2p/apue.2e

TITANIC上的小景 3557

高通SDX12:ProSLIC Si32185移植调试

高通 SDX12 语音芯片slic 音频驱动 Si32185

不秃头的程序猿Gabriel的博客 2036

(五)深入理解蓝牙BLE之“Beacon包格式详解”

蓝牙Beacon格式详解 本文重点在结合Bluetooth官网spec和几个例子来使beacon帧格式更加容易被理解。 广播帧格式: 首先beacon是蓝牙BLE广播包的一种,蓝牙广播帧格式如下: PS:其实BLE数据帧除了报头字段和数据字段定义与广播帧不同之外,前导/接入地址/长度/校验格式均相同。 广播帧数据字段格式: 数据字段最长为37个字节:6个字节的广播设备地址 + 31个字节广播数据。 广播数据的格式如下:AD Structure1 +AD Structure2 + .....

1万+

《Unix环境高级编程》(APUE)附带源码编译过程

在UBUNTU下进行APUE的代码编译的话,需要改动的地方很多,尤其是ubuntu12.04下,内核升级到3.0后。 一 首先进行一些改动,将工作区间改变,修改MAKE文件以为编译打基础 http://blog.csdn.net/dycwahaha/article/details/2300938 (一)作者提供的编译方法的实现      README文件中给出的编译方法如下:     T

bg2bkk的专栏 2999

【中科院一区Top-源码复现】Day-ahead photovoltaic power forecastingwith multi-source temporal-featureconvoluti

【中科院一区Top-源码复现】Day-ahead photovoltaic power forecastingwith multi-source temporal-featureconvoluti

738

unix高级环境编程 apue第三版 源码编译过程(完整)

环境:ubuntu18.04(有root权限) 1.下载源代码 第三版:http://www.apuebook.com/code3e.html 2.上传到服务器(ubuntu) 解压 tar -xvf apue.3e.tar.gz 进入目录 cd apue.3e 3.下载依赖 sudo apt install libc6-dev sudo apt-get install libbsd-dev 4.尝试make make 遇到错误,没有权限 给文件赋予权限 chmod 755 systypes.s

jane_6091的博客 1277

Python爬虫实战:模拟登录知乎 – 通过加密参数和验证码实现自动登录

通过本篇博客的讲解,我们学习了如何通过 POST请求 和 验证码识别,模拟登录知乎并爬取用户信息、问题数据。随着爬虫技术的发展,面对更复杂的反爬虫机制,我们可以不断调整策略,以绕过这些防护,实现数据的自动化抓取。

2201_76125261的博客 731

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

《APUE》在Ubuntu上使用apue.h

Linux版本:Ubuntu14.04 在开始学习APUE的过程中很多时候都遇到apue.h这个头文件,该书的每一个程序都会包含这个头文件,它包含许多标准系统头文件,定义了许多常量和常用的函数原型,在附录B中会看见该头文件的内容。 以下为使用apue.h的步骤: 一、下载apue的源码 http://www.apuebook.com/code3e.html 二、安装libbsd 执行ap...

Chancer224的博客 657

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Ubuntu 配置 apue.h 环境

1.下载书上源码: http://www.apuebook.com tar -zxvf src.3e.tar.gz cd apue.3e/ sudo apt-get install libbsd-dev sudo make 2. 出现的问题 : cc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE devrdev.c -o devrdev -L...

qq_29116917的博客 2523

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

APUE代码的编译

一:下载源码包:    免费下载地址在 http://linux.linuxidc.com/     用户名与密码都是www.linuxidc.com     具体下载目录在 /2013年资料/1月/8日/Ubuntu 12.04 配置apue2环境,如下图二:解压tar -zxvf src.tar.gz    建议在/root目录下进行解压操作,解压后的完整目录/root/apue.2e三:修改...

u013720891的博客 302

APUE实战篇1:在Ubuntu环境搭载apue的环境

看了好几天的《UNIX环境高级编程》(即APUE),懵懵懂懂,为了能找到一种好的方法提高学习效率,在网上看了很多前辈的帖子,原来可以在Ubuntu环境下实战训练,即搭载APUE的环境,所以二话不说,立马搭载了该环境,以下是相关教程。 说实话,搞这东西要有一定的Linux基础,什么gcc编译器,vim文本编辑器,常用的命令(例如:mv、cd、ls等等)都是需要知道的,如果还不会的伙伴去看看《Linux鸟哥的私房菜》,了解一下Linux吧。 第一:环境要求 安装好虚拟机VMware(我的是15版本),并且安装U

weixin_45880057的博客 707

使用Ubuntu搭建apue环境的绝佳姿势,附带一系列工具操作

主要为研究国外知名计算机课程CS631 - APUE,配合《UNIX环境高级编程》一书。目的在于更好的了解类Unix下系统编程,搭建环境不限于APUE编程,可应用更多的场景。

totomiz的博客 744

第三版apue编译

第三版apue编译: 首先在 http://www.apuebook.com/ 下载源码解压: tar zxvf src.3e.tar.gz 看完Readme可知,直接执行make即可 执行make报错: making threads make[1]: 正在进入目录 `/work/apue/apue.3e/threads' gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE badexit2.c -o badexit2 -L../lib

D&T的博客 214

Ubuntu VIM下编译程序时找不到或者不存在apue.h头文件

Ubuntu VIM下编译程序提示 “错误:apue.h:没有那个文件或目录”. apue.h是作者自定义的一个头文件,包括程序所需的常用头文件及出错处理函数。所以应该将它放入系统头文件中(Linux下是 /usr/include),这样gcc编译器就可以找到它了。 通过http://www.apuebook.com/下载源码2005版,下载完毕后通过cd进入下载目录文件夹 解压文件夹: tar -zxvf src.2e.tar.gz 1.进入/usr/include文件夹 #cd /usr/inclu

iiyangyangsasa的博客 921

unix环境高级编程 APUE.H最简单编译方法(第二版) Linux和Ubuntu

/******************************************************************************* *第0种-最简单实用 * *******************************************************************************/. 1.直接进入源码目录的lib目录  

mitesi的专栏 2604

APUE代码注记

写这篇博文是因为之前这篇文章:http://blog.csdn.net/fanfank/article/details/9418545 APUE在2013年出了新版(第三版),不知道里面的代码运行情况如何。所以我以下关于代码的注记,是针对APUE(第二版,2005年)的 ————————正文———————— 首先,所有的例程代码可以从www.apue.com下载,我之前下载的就是2005年那

fanfanK的专栏 2767

apue学习第三天——深度解析apue第三版示例程序编译问题

说“深度解析”,不免贻笑大方了,但菜鸟还是厚着脸皮说吧,初生牛犊不怕虎嘛。 从apuebook.com下载第三版源码,解压,make。遇到错误:cannot find -lbsd。遇到这方面错误,也就是缺少libbsd文件,那么添加:$sudo apt-get install libbsd-dev。make,done! 下面就是对第三版书中1-3的编译问题了。我的apue.3e源码放在/hom

BlitzSkies的专栏 5764

APUE读书笔记(0.1) ——在ubuntu12.04下编译APUE源代码

1、下载源码 建议去官网下载( http://www.apuebook.com/ ),话说今年APUE第三版出来了,消化了第二版后可以去拜读一下。 2、解压至某个目录,修改Make.defines.linux 假设解压到/home下,进入目录apue.2e,把文件Make.defines.linux 中的 WKDIR=/home/xxx/apue.2e 修改为 WKDIR=/home

SYSU_PZX的专栏 834
上一篇: apue2e unp安装
下一篇: win7下搭建opengl es 2.0开发环境
cbbbc
博客等级 码龄15年 609粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值