1 獲得源碼
從apue的官方網站http://www.apuebook.com/下載 源碼。(點擊here直接下載) 在windows下載後用U盤拷到linux系統下找個目錄解壓
tar -zxvf src.tar.gz 在當前目錄下解壓 通過pwd查看你解壓的目錄 這個目錄要記住會在下一步中用到
2 WKDIR
編輯源碼解壓生成的apue.2e文件 夾下的Make.defines.linux
修改WKDIR=/home/sar/apue.2e爲你的apue.2e目錄 ,
比如我的apue源碼解壓在主目錄下,那我就改爲:
WKDIR=/home/tgl/apue.2e
3 nawk
然後進入apue.2e/std 目錄,編輯linux.mk。修改裏面所有的nawk爲awk。4 stropts.h
如果出現stropts.h找不到的情況,則下載glibc-2.11,
ftp://ftp.gnu.org/gnu/glibc/
解壓縮
cp ./glibc-2.11/streams/stropts.h /usr/include
cp ./glibc-2.11/bits/stropts.h /usr/include/bits
cp ./glibc-2.11/sysdeps/x86_64/bits/xtitypes.h /usr/include/bits
5 ARG_MAX
在我的機器上編譯時,提示ARG_MAX未定義,可以這麼修改。
在apue.2e/include/apue.h中添加一行:
#define ARG_MAX 4096
打開apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行:
#include "apue.h"
6 修改腳本文件systype.sh 的權限,給當前用戶及其所在組和其他組添加可執行權限。(有的不需要這一步)
返回apue.2e 目錄,執行make 命令。
把頭文件apue.h放到/usr/include/中,注意要以root用戶操作以下命令(加 sudo )
可通過pwd查看apue.h的路徑
cp ~/apue.2e/include/apue.h /usr/include
cp ~/apue.2e/lib/libapue.a /usr/lib
6 編譯運行程序
gcc 源程序.c -o 可執行程序名 -lapue
或者gcc 源程序.c -o 可執行程序名 /usr/lib/libapue.a
或者在apue目錄下,gcc 源程序.c -o 可執行程序名 lib/libapue.a
另外,源碼路徑不要太深,目錄名不要有空格和太長
之前就因爲路徑名中有空格並很長,而編譯出錯no such file
unix環境高級編程-教材代碼編譯過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
阿里雲Ubuntu服務器搭建Javaweb開發環境
只修电脑不过夜
2018-08-27 20:03:20
Linux 系統下 CodeBlocks安裝與使用
花姑
2018-08-27 20:02:59
Linux後臺執行的方法 - 關閉、退出不影響
saife
2018-08-27 20:00:14
Can't read dir of '.' (errno: 13)
saife
2018-08-27 20:00:13
mysqldump: Got error: 1: Can't create/write to file '/data/export/test.txt' (Errcode: 13)
saife
2018-08-27 20:00:11
Ubuntu安裝inception錯誤處理make[2]: *** [sql/CMakeFiles/sql.dir/sql_yacc.cc.o] Error 1
saife
2018-08-27 20:00:11
linux bash腳本編程
li528405176
2018-08-27 19:57:05
linux 基礎命令(一):文件系統跳轉與操作系統探究——date,cal,df,free,exit,pwd,cd,ls,命令選項和參數,file,less,系統目錄,硬鏈接與軟鏈接
li528405176
2018-08-27 19:57:03
linux常用命令全拼
jlegend
2018-08-27 19:57:02
關於Lempel-Ziv壓縮算法的筆記
blueimpulse
2018-08-27 19:56:49
Linux下無線網卡安裝2
blueimpulse
2018-08-27 19:56:48
Linux之無線世界(在Linux平臺配置無線網卡)
blueimpulse
2018-08-27 19:56:48
《轉》QT_BEGIN_NAMESPACE、QT_END_NAMESPACE 等問題
wang_ji_min
2018-08-27 19:56:35
linux下 /etc/profile、~/.bash_profile ~/.profile的執行過程
wang_ji_min
2018-08-27 19:56:21
[轉]動態磁盤和LVM。好文章
hawstein
2018-08-27 19:56:18