Ok, let's learn about what happens behind the smoke & mirrors.

gcc is a program that turns the c code into binary files.  These files
(xxxx.o is their usual name) can't be executed as they haven't been through
the next process...

ld is a program that turns lots of binary files into an executable file
(still binary, but this one can be run by users).  ld does things like
figure out which chunk of code that call to the pow() function really means.
How it resolves those is to look in the shared object files (.so files) that
you told it about via the -l parameters in the ld line.

Where it gets confusing is that gcc invokes ld for you, under the covers as
it were, so you often don't see it.  It's also confusing because references
can be to files you've got no clue about - hidden in references you actually
did make.  But that's where the undefined reference comes from.

So...

The actual code for gd (the graphics creator) which ntop calls is in a .so
file named libgd.so.  That chunk of code references another library to build
png files, named libpng.so.  That chunk of code uses standard math functions
like pow().  So while you won't see a reference in ntop to pow(), it's
required.

Break up the gcc invocation and you'll see this:

gcc -o conftest
    -g -O2
    -I/usr/local/include
    -Wshadow -Wpointer-arith -Wmissing-prototypes -Wmissing-declarations -Wn
ested-externs  -fPIC  -DLINUX
    -I/usr/local/include
    -L/usr/local/lib
    conftest.c
    -lpng  -lgd -lgdbm -lpcap  -lpcap -lgdbm -lgd -lpng

Where the -o parameter tells the name of the output file

The -g -O2 -Ws are various compiler tuning parameters

-I parameters tell gcc where to look for .h files (beyond a set of
'standard' locations that it always checks)

-L parameters tell gcc where to look for .so files (beyond a different set
of 'standard' locations)

the -l parameters are libs to include always, minus the lib and .so
 (so -lgdbm means libgdbm.so)

Notice that there's no math type library listed there.  It's oftne
libmath.so or libm.so

Notice that there's no zlib library listed there.  It's usually libz.so.

If you manually run gcc (cut & paste the source file from the log into
conftest.c):

gcc -o
conftest -g -O2 -I/usr/local/include -Wshadow -Wpointer-arith -Wmissing-prot
otypes -Wmissing-declarations -Wnested-externs  -fPIC  -DLINUX -I/usr/local/
include  -L/usr/local/lib
conftest.c -lpng  -lgd -lgdbm -lpcap  -lpcap -lgdbm -lgd -lpng -lz -lm

it will probably work.  Then it's up to you to tell ntop how to find these
libraries.

-----Burton

PS: In the future, give us details about your environment.  Since you
didn't, I'm pushing it back on you.


-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Frank
Clatterbaugh
Sent: Monday, December 01, 2003 2:46 PM
To: [EMAIL PROTECTED]
Subject: RE: [Ntop] configure issues


Ok, thanks Burton. Below are details from the log file where I think the
problem is at. I still have
no idea what it's squawking about.







configure:9370: checking for main in -lpng
configure:9395: gcc -o
conftest -g -O2 -I/usr/local/include -Wshadow -Wpointer-arith -Wmissing-prot
otypes -Wmissing-declarations -Wnested-externs  -fPIC  -DLINUX -I/usr/local/
include  -L/usr/local/
lib conftest.c -lpng  -lgd -lgdbm -lpcap  -lpcap -lgdbm -lgd -lpng >&5
cc1: warning: changing search order for system directory
"/usr/local/include"
cc1: warning:   as it has already been specified as a non-system directory
/usr/local/lib/libpng.so: undefined reference to `deflate'
/usr/local/lib/libpng.so: undefined reference to `inflate'
/usr/local/lib/libpng.so: undefined reference to `inflateInit_'
/usr/local/lib/libpng.so: undefined reference to `crc32'
/usr/local/lib/libpng.so: undefined reference to `pow'
/usr/local/lib/libpng.so: undefined reference to `deflateInit2_'
/usr/local/lib/libpng.so: undefined reference to `inflateReset'
/usr/local/lib/libpng.so: undefined reference to `deflateReset'
/usr/local/lib/libpng.so: undefined reference to `inflateEnd'
/usr/local/lib/libpng.so: undefined reference to `deflateEnd'
collect2: ld returned 1 exit status
configure:9398: $? = 1
configure: failed program was:
| #line 9377 "configure"
| /* confdefs.h.  */
|
| #define PACKAGE_NAME "ntop"
| #define PACKAGE_TARNAME "ntop"
| #define PACKAGE_VERSION "2.2.97"
| #define PACKAGE_STRING "ntop 2.2.97"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE "ntop"
| #define VERSION "2.2.97"
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_LONG_DOUBLE 1
| #define CFG_LITTLE_ENDIAN 1
| #define HAVE_PCAP_H 1
| #define HAVE_LIBPCAP 1
| #define HAVE_PCAP_OPEN_DEAD 1
| #define HAVE_GDBM_H 1
| #define HAVE_LIBGDBM 1
| #define HAVE_GD_H 1
| #define HAVE_LIBGD 1
| #define HAVE_PNG_H 1
| /* end confdefs.h.  */




From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Burton
M. Strauss III
Sent: Monday, December 01, 2003 2:15 PM
To: [EMAIL PROTECTED]
Subject: RE: [Ntop] configure issues

Usual answer - look at config.log and see the actual error message, then fix
the problem.

-----Burton

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Frank
Clatterbaugh
Sent: Monday, December 01, 2003 1:29 PM
To: [EMAIL PROTECTED]
Subject: [Ntop] configure issues
I have just downloaded the most recent version from CVS and am having
difficulty compiling the source.
I looked through the back traffic and couldn't find the answer to this
question, so be kind Burton.

When I run  configure I get the following errors:
checking for libpng...
checking png.h usability... yes
checking png.h presence... yes
checking for png.h... yes
checking for main in -lpng... no

*******************************************************************
*
* ERROR: libpng header or library routines are missing
*           (yes means it was found, no means it was not found)
*
*              png.h...yes
*              png_read_info() in -lpng...
*
*>>> No way to proceed.
*
*???        Install libpng (and/or libpng-devel), check www.libpng.org
*???    and Rerun ./configure
*
*******************************************************************

I tried reinstalling zlib and libpng but it still gave these errors. I tried
the -with directives to point to /usr/local/lib and /usr/local/include and
still got these errors. Any ideas ?

_______________________________________________
Ntop mailing list
[EMAIL PROTECTED]
http://listgateway.unipi.it/mailman/listinfo/ntop

Reply via email to