导航:首页 > 源码编译 > apue源码编译

apue源码编译

发布时间:2022-08-12 05:28:54

① 关于在cygwin中如何使用 apue.h

apue编程的例子都有关include "apue.h"的代码,其实apue.h并不是系统自带的,它是作者编写的头文件,源代码在附录B中.因此一个方法是.把刚才生成的 /root/apue.2e/include/apue.h直接复制到/usr/include下.
还有像err_sys的函数也在附录B中.同样的方法是在/usr/include新建一个 my_err.h的文件,把Figure B.3. Error functions that output to standard error内容复制进去.这样按例子编程就只需要在行首添加:#include "my_err.h"就可以了..

② 如何运行APUE中的代码

APUE中的代码不是download下来就可以直接编译执行的。由于头文件的问题,需要做相关的设置,修改一下相关的文件。
首先从http://www.apuebook.com/src.tar.gz下载源码压缩包,解压到相应目录,例如:
mkdir /home/Rockics/src
cd /home/Rockics/src/
wget http://www.apuebook.com/src.tar.gz
tar zxvf src.tar.gz
解压以后得到文件夹apue.2e。按照以下步骤完成设置,则可以编译相关代码:
1.进入相应目录:cd apue.2e;
2.修改文件Make.defines.linux:将其中的WKDIR 修改为/home/Rockics/src/apue.2e,保存退出;
3.修改文件std/linux.mk:将其中的nawk全部修改为wak,可在vi下使用命令:%s/nawk/awk/g完成;
4.修改文件include/apue.h:在文件倒数第二行(也就是#endif之前)加入:#include "error.c"; 这一行;
5.切换到root账户,将include/apue.h还有lib/error.c拷贝一份到/usr/include/下
设置完毕:)
测试:
我运行APUE的第一个程序实验一下环境是否OK:
APUE的第一个程序是myls.c,文件位于file/ls1.c,试试看其是否编译通过哈:
[Rockics@localhost apue.2e]$ gcc -o myls -Wall file/ls1.c
很好,没有任何警告,设置成功。

③ Unix环境高级编程书上的第一个例程如何运行(附代码)

你这根本是跳着看书,这个apue.h是包含了非常多的头文件的,在附录里有,前面也说明了,你跑程序怎么可以也用这个头,你根本没这个文件

④ 本人是小白,请问UNIX书中./a.ou是什么文件,还有“apue.h“头文件是自己写的吗程序写在vi里怎么运行

  1. 关于./a.out

    以C语言为例,linux下假设有test.c文件,gcc编译后(不加-o)选项默认生成的可执行文件名就是a.out,也就是说a.out文件是一个可执行文件。./a.out表示执行该可执行文件

  2. apue.h是自己写的,《UNIX环境高级编程》中附录B(677页)中有源码

  3. 假设你用vi编辑了一个test.c文件,计算机是无法直接读懂该文件的,细说的话要经过预处理、编译、汇编、链接等操作后才生成计算机能读懂的文件,也就是我刚才说的可执行文件那种。对于C初学者,你需要借助编译器gcc:

    $gcc test.c

    执行这个命令后再当前目录下执行ls,会发现多了一个a.out的可执行文件,然后执行./a.out就可以运行程序了。gcc可以加上-o选项,如:

    $gcc test.c -o test.exe

    -o选项表示指定生成文件的名称。gcc还有很多选项,深入学习的话可以网络或者gcc -help之类的命令查看

⑤ 在头文件里定义的函数在编译时说未定义

void err_sys(const char *, ... );
这样只是声明了一下,没有对其定义,当然会报错,这个就相当于printf()的函数,只是它自己定义了一个新的,你去stdio.h头文件里看看printf()怎么定义的。

⑥ C语言编译警告

void
main(void);函数被定义多次,这么明显的错误肯定是其他.c文件定义了main函数了
另外你的这种写法完全不符合c99啊
void
main(void)
应该写成
int
main(void);或者
int
main(char
*argc,char*
argv[])

⑦ Unix找不到apue.h文件该怎么办

书的附录中有,apue.h ,及其实现,先写上,引用位置稍微调整一下。
或者你给放到下面的目录下面去:
头文件:/usr/local/include
/usr/local/lib,或者/usr/local/lib64(64位库放这里)
先把实现编译成静态库,ar 很简单

阅读全文

与apue源码编译相关的资料

热点内容
在线申请小额贷款源码 浏览:328
多个文件夹如何批量删除内容 浏览:246
电力载波单片机 浏览:591
单片机串行通讯 浏览:515
遍历两个对应列表python 浏览:491
数控编程演示软件哪里下载 浏览:686
程序员会6点下班吗 浏览:791
linuxdate时区 浏览:325
小说服务器怎么选 浏览:526
python自动化测试框架哪个最好 浏览:311
反编译后为什么不能回编 浏览:54
java反射获得属性值 浏览:39
程序员和甲方的矛盾 浏览:126
在地狱做程序员 浏览:765
银行app能做什么 浏览:238
追书缓存的小说在哪个文件夹 浏览:563
山科女生程序员 浏览:748
mybatis3源码分析 浏览:467
华为交换机常用配置命令 浏览:378
程序员怎么去银行上班 浏览:591