导航:首页 > 源码编译 > 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源码编译相关的资料

热点内容
有一本小说主角叫屠夫 浏览:880
微信发送pdf文件 浏览:605
被老婆当鼎炉修炼的小说 浏览:646
php截取最后一位 浏览:377
安卓源码单独编译内核 浏览:446
易语言在线编译 浏览:112
unityandroid游戏开发教程 浏览:94
android去掉虚拟按键 浏览:873
内地激情戏多的电影 浏览:42
更新最快的电视剧电影网 浏览:263
剑三宏设置命令 浏览:245
3C语言编译器 浏览:170
我的世界基岩版怎么加入tis服务器 浏览:390
php论坛模板 浏览:908
找个免费看电影的网站 浏览:372
程序员怎么接手别人遗留的代码 浏览:752
瞬变pdf 浏览:307
php开发仓库管理系统 浏览:688
12米小孩自己看电影 浏览:676
丧尸电影全部 浏览:660