unix網絡編程 代碼編譯
阿新 • • 發佈:2018-02-09
following style code lar diff config targe cli ets
查看readme文件:
Execute the following from the src/ directory:
./configure # try to figure out all implementation differences cd lib # build the basic library that all programs need make # use "gmake" everywhere on BSD/OS systems cd ../libfree # continue building the basic library make cd ../libroute # only if your system supports 4.4BSD style routing sockets make # only if your system supports 4.4BSD style routing sockets cd ../libxti # only if your system supports XTI make # only if your system supports XTI cd ../intro # build and test a basic client program make daytimetcpcli ./daytimetcpcli 127.0.0.1
yuanoung@ThinkPad-X260:~/Projects/unixNetwork/lib$ cd ../libfree yuanoung@ThinkPad-X260:~/Projects/unixNetwork/libfree$ make gcc -I../lib -g -O2 -D_REENTRANT -Wall -c -o in_cksum.o in_cksum.c gcc -I../lib -g -O2 -D_REENTRANT -Wall -c -o inet_ntop.o inet_ntop.c inet_ntop.c: In function ‘inet_ntop’: inet_ntop.c:60:9: error: argument ‘size’ doesn’t match prototype size_t size; ^~~~ In file included from inet_ntop.c:27:0: /usr/include/arpa/inet.h:64:20: error: prototype declaration extern const char *inet_ntop (int __af, const void *__restrict __cp, ^~~~~~~~~ <builtin>: recipe for target ‘inet_ntop.o‘ failed make: *** [inet_ntop.o] Error 1 yuanoung@ThinkPad-X260:~/Projects/unixNetwork/libfree$ vim inet_ntop.c --〉將第60行的 size_t size 改成 socklen_t size; 再次make,有警告,但是可以忽略。
將文件拷貝到指定的目錄:
yuanoung@ThinkPad-X260:~/Projects/unixNetwork$ sudo cp libunp.a /usr/lib yuanoung@ThinkPad-X260:~/Projects/unixNetwork$ sudo cp lib/unp.h /usr/include yuanoung@ThinkPad-X260:~/Projects/unixNetwork$ sudo cp config.h /usr/include yuanoung@ThinkPad-X260:~/Projects/unixNetwork$ vim lib/unp.h # 將#include "../config.h" 改成 #include "config.h"
對代碼進行編譯:
yuanoung@ThinkPad-X260:~/Projects/unixNetwork/intro$ gcc daytimetcpcli.c -o cli -lunp
yuanoung@ThinkPad-X260:~/Projects/unixNetwork/intro$ gcc daytimetcpsrv.c -o srv -lunp
運行第一個例子:
yuanoung@ThinkPad-X260:~/Projects/unixNetwork/intro$ sudo ./srv
yuanoung@ThinkPad-X260:~/Projects/unixNetwork/intro$ ./cli 127.0.0.1
Fri Feb 9 20:09:46 2018
yuanoung@ThinkPad-X260:~/Projects/unixNetwork/intro$ ./cli 127.0.0.1
Fri Feb 9 20:09:47 2018
unix網絡編程 代碼編譯