上APUE快大半學期了,弄了一份源碼自己研究研究,在linux下決心編譯使用一下 ^_^
1. 解壓縮后,放在/Root/SourceCode目錄下
cp -f Make.def.rhlin Make.defines
2. cd lib.rhlin
3. 修改該目錄下的Makefile,把第17行的目標文件strerror.o去掉,把58行redhat60linux到行首的空格去掉;
4. make redhat60linux
在目錄/Root/SourceCode中編譯生成了庫文件libmisc.a
5. 拷貝此文件到/Root/mylib中
cp -v ./libmisc.a ../mylib
6. 在目錄/Root/SourceCode修改Make.defines中的11行和19行的路徑指定庫文件libmisc.a的位置
本例子中指定它們的路徑為/Root/mylib/libmisc.a
7.在各章的目錄中make就可以生成相應的可執行文件。
若想單獨編譯某一個單獨的文件,如ls1.c則可以執行
gcc -ggdb -Wall -Wstrict-prototypes -O ls1.c /root/mylib/libmisc.a -o ls1
大概的思路是libmisc.a庫文件是ourhead.h中函數的說明,要想使用這個庫,就要在程序中引入。
Make.defines定義了各個章節目錄下的Makefile文件需要定義的變量,每個Makefile都要include此Make.defines
文章來源于領測軟件測試網 http://www.kjueaiud.com/