OS X下UNIX环境高级编程(第三版)学习日志-第一章ChapterI,编译apue包与第一个例程

拜拜、爱过 提交于 2019-12-09 20:13:19

    1.从网络上获取代码,地址如下apue最新官方下载地址

    2.解压到本地

    

    由于最新版本是第三版(3rd Edition),apue.3e,就是我们要的源代码

    3.编译源代码

    编译过程中笔者并未遇到任何问题,所以建议大家也下载最新版本的代码来学习,贴一下笔者的环境信息

Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.1.0 (clang-602.0.53) (based on LLVM 3.6.0svn)
Target: x86_64-apple-darwin14.5.0
Thread model: posix

    3.1 没有安装xcode,只安装了os x命令行开发工具,os x用户可以在这里下载官方最新最全版本的xcode及命令行开发工具(xcode ghost出了之后只信任官方haha),笔者安装的是适用于os x10.10的版本,目前稳定版的xcode是6.4所以就选6.4版本,读者可自行选择。

    

    最新版本的gcc(5.2.0)在编译的时候会有不支持-R命令的问题,因此就选用了自带的4.2.1(好像是吼),读者如果用的也是不支持-R命令的问题,可以尝试更换其他版本的gcc。

    3.2 编译

    进入apue.3e目录,make

    生成的文件中,对于本文最重要的一个,静态库文件:apue.3e/lib/libapue.a,由lib下的.c文件生成,目测是本书所有例程中调用的自己编写的函数静态库。

    这个阶段笔者没有遇到问题所以。。。进入下一节,例程:ls(1)命令的简要实现。

    4.ls(1)命令的简要实现 第一个例子

    在网上尝试搜索的时候发现很多初学的小伙伴都卡在了这里,着重介绍下,例程代码就不在这敲了,下载的代码里有/apue.3e/ls1.c,有一个很坑爹的事实知会os x的同学,书中给的命令cc myls.c不能直接用!

    我们要这么编译:

    4.1.添加C_INCLUDE_PATH路径使#include "apue.h"可用,具体操作请自行查找

    4.2.编译,输入命令gcc -c myls.c,只编译出.o文件

    4.3.链接,链接过程中要加入静态库路径,gcc -o myls myls.o -L/Users/AlexTuan/unix/apue.3e/lib -lapue,读者将高亮部分替换成自己的libapue.a的路径即可。

    4.4.运行 ./myls test 就可以列出test目录下所有的子目录/文件。

殷切希望可以帮到和我一样在os x下初学 UNIX环境高级编程的小伙伴们,不用像我一样浪费两三个晚上才找到答案TUT。

如果本文对你有所帮助,请随意转载,注明作者即可。

THE END


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!