COMPILING AND SETTING UP UNIX NETWORK PROGRAMMING (UNP) LIBRARY

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

COMPILING AND SETTING UP UNIX NETWORK PROGRAMMING (UNP) LIBRARY

To develop

their automated traders in an external machine, you need to install the UNP

communication library provided by Richard Stevens' Unix Network Programming

book. The source code can be found at:

http://www.kohala.com/start/unpv12e/unpv12e.tar.gz

We assume you saved the file in a directory that we refer to as UNPV_DIR. After that, the user can use the command (to unzip and untar in the current directory):

tar -xvzf unpv12e.tar.gz

That should create a directory unpv12e

in UNPV_DIR, and uncompress all the necessary files inside

it.

The next step is to compile the network library without errors. Here

is Stevens' original compilation notes together with other comments added

to ease up the compilation process.

QUICK AND DIRTY (Originally by Richard Stevens, edited by PLAT Team)

Once you are inside UNPV_DIR,

cd unpv12e

./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

If you are unable to compile using '

make' (the last step above), then follow the

modifications suggested below and try again. The exact nature of the

modifications needed might differ from one configuration to another.

Below are general tips from our crux installation. After you change

something in the UNP source code, we recommend you execute '

make clean' before calling 'make' again to be certain that your changes are fully incorporated.

NOTES ON UNP INSTALLATION ON CRUX

The following are the particular changes we needed to make for the UNP

installation on crux (UNPV_DIR=/usr/local):

Commented out a structure because it was a redefinition of

a structure which was in the system's include libraries, with one extra

field: (UNPV_DIR/unpv12e/lib/unp.h, line 113)

/* Commented out the following because it is a redefinition of a structure

* with slightly different/missing fields defined in system's original

* header files.

*/

//struct in_pktinfo {

//struct in_addr ipi_addr; /* dst IPv4 address */

//int ipi_ifindex; /* received interface index */

//};

Replaced the call to mktemp with call to mkstemp instead, since the latter is obsolete, and modified the function MKtemp accordingly (for example, mktemp returns NULL on error, but mkstemp returns -1 on error): (UNPV_DIR/unpv12e/lib/wrapunix.c, line 96)

/* Changed the call to mktemp with call to mkstemp */

if (mkstemp(template) == -1 || template[0] == 0)

err_quit("mkstemp error");

That's all we needed to change for this part of the UNP installation

process, and then the compilation worked without errors (for the most part,

you can safely ignore any warnings you see during the UNP library compilation).

In general, one additional possible change you might need to make is to edit the file config.cache in the UNPV_DIR/unpv12e

directory. If you get an error, either during this step of building the

UNP library or the compilation of your strategies, regarding the

function getnameinfo, you want to make sure that the following line regarding getnameinfo in config.cache is exactly as follows:

ac_cv_func_getnameinfo=${ac_cv_func_getnameinfo=yes}

(i.e., make sure it is set to "yes" as above!). If you have to make

this change, you should re-execute the following sequence of commands

starting at the UNPV_DIR/unpv12e directory,

./configure

cd lib

make clean

make

Before finishing off with the UNP installation, you also need to execute the following:

cd UNPV_DIR/unpv12e/libfree

# continue building the basic library

make

If all that works (without errors!), you're done with the compilation of the network layer. If

you wish, you can now safely remove the compressed file UNP package

file you downloaded (or the tar file that resulted if you directly

uncompressed the file) after successfully building the UNP library.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航