Unix NetWork Programming——環境搭建(解決unp.h等源碼編譯問題)

搭建《unix網絡編程》那本書所需的環境


我用的是ubuntu11.10系統:


1,安裝編譯器,爲了齊全還是安裝一下build-essential

[python] view plaincopy
  1. sudo apt-get install build-essential  

2,下載本書的頭文件及示例源碼

點此下載unpv13e.tar.gz  http://ishare.iask.sina.com.cn/f/13238521.html



3,解壓unpv13e.tar.gz後進入目錄查看README,然後可以按照裏面提示操作,不過會遇到問題

第一步:在終端中進入upnv13e目錄,然後執行代碼:

[python] view plaincopy
  1. chmod u+x configure
  2. ./configure  


第二步:進入lib目錄下執行make:

[python] view plaincopy
  1. cd lib  
  2. make


第三步:建立基礎類庫:

[python] view plaincopy
  1. cd ../libfree  # continue building the basic library  
  2. make  


第四步:編譯函數庫:
[python] view plaincopy
  1. cd ../libgai   # the getaddrinfo() and getnameinfo() functions  
  2. make  


4,將生成的libunp.a靜態庫複製到/usr/lib/和/usr/lib64/中。

  1. cd ..   //回到unpv12e目錄  
  1. sudo cp libunp.a /usr/lib  
  2. sudo cp libunp.a /usr/lib64  


5,修改unp.h並將其和config.h拷貝到/usr/include中,爲了以後include方便
[python] view plaincopy
  1. gedit lib/unp.h   //將unp.h中#include "../config.h"修改爲#include "config.h"  
[python] view plaincopy
  1. sudo cp lib/unp.h /usr/include  
  2. sudo cp config.h /usr/include  

6,編譯源代碼
[python] view plaincopy
  1. cd ./intro  
  2. gcc daytimetcpcli.c -o daytimetcpcli -lunp  
然後發現報錯:

daytimetcpcli.c:1:17: 致命錯誤: /usr/include/unp.h:權限不夠

解決方法:
1.把 /usr/include/unp.h文件刪掉:

sudo rm /usr/include/unp.h

2.進入unpv13e解壓目錄下的lib文件裏面找到unp.h,然後右鍵查看屬性,選中權限,修改它的權限爲讀寫,或只讀
3.重新將unp.h文件拷貝一次:

sudo cp lib/unp./usr/include  

ok,按照第6步的命令重新編譯,pass,成功了

跟普通的編譯不一樣的是要在最後加上剛纔那個鏈接庫,-l參數加上剛纔那個libunp.a去掉lib和後面的.a。最後得到參數-lunp。



7,編寫程序

以後編寫完的程序安裝6中的代碼編譯就行了,然後代碼可以完全跟書上的一樣。代碼編輯器或IDE等就按自己的喜好來選了。這個網上很多c語言編程環境搭建教程。

我選擇命令行用vim編寫程序,主要爲了鍛鍊一下自己。我的vim配置如下:http://lingshaohuprose.blog.163.com/blog/static/1695797822012271954678/





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章