OS X下UNIX環境高級編程(第三版)學習日誌-第一章ChapterI,編譯apue包與第一個例程

    1.從網絡上獲取代碼,地址以下apue最新官方下載地址
html

    2.解壓到本地
c++

    

    因爲最新版本是第三版(3rd Edition),apue.3e,就是咱們要的源代碼
shell

    3.編譯源代碼
編程

    編譯過程當中筆者並未遇到任何問題,因此建議你們也下載最新版本的代碼來學習,貼一下筆者的環境信息xcode

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。
app

    3.2 編譯
svn

    進入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

相關文章
相關標籤/搜索