I used g++ instead gcc -x c++. When i use -llibstdc++ at the end of link line , i receive following lines: //////////////////////////////////////////////////////////////////// g++ -o urldump urldump.o base64.o buf.o pcaputil.o chksum_ctl.o postgres.o linked_list.o -lresolv -lnsl -lrpcsvc -lpcap -lnet -lnids -L. -lpq -lpthread -llibstdc++ postgres.o:(.data+0x0): multiple definition of `conninfo' urldump.o:/home/mohsen/workspace/urldump/./urldump.c:309: first defined here /usr/bin/ld: cannot find -llibstdc++ collect2: ld returned 1 exit status make: *** [urldump] Error 1 //////////////////////////////////////////////////////////////////////// And when i remove -llibstdc++ from the end of link line , i receive following lines: ////////////////////////////////////////////////////////////////////////////// urldump.o: In function `flushing(void*)': urldump.c:(.text+0xce): undefined reference to `flush_to_db(int)' urldump.o: In function `process_http_request(tuple4*, unsigned char*, int)': urldump.c:(.text+0x359): undefined reference to `buf_init(buf*, unsigned char*, int)' urldump.c:(.text+0x378): undefined reference to `buf_tok(buf*, void*, int)' urldump.c:(.text+0x3a7): undefined reference to `buf_seek(buf*, int, int)' urldump.c:(.text+0x4f0): undefined reference to `base64_pton(char const*, unsigned char*, unsigned int)' urldump.c:(.text+0x5fe): undefined reference to `buf_tok(buf*, void*, int)' urldump.c:(.text+0x653): undefined reference to `libnet_host_lookup(unsigned long, unsigned short)' urldump.c:(.text+0x693): undefined reference to `libnet_host_lookup(unsigned long, unsigned short)' urldump.c:(.text+0x6b1): undefined reference to `libnet_host_lookup(unsigned long, unsigned short)' urldump.c:(.text+0x6d1): undefined reference to `filling_node(char*, char*, char*, char*, char*)' urldump.c:(.text+0x6ec): undefined reference to `buf_index(buf*, void*, int)' urldump.o: In function `main': urldump.c:(.text+0x8d9): undefined reference to `strconcat(char*, ...)' urldump.c:(.text+0x8e3): undefined reference to `pg_connect()' urldump.c:(.text+0xa15): undefined reference to `copy_argv(char**)' collect2: ld returned 1 exit status make: *** [urldump] Error 1 /////////////////////////////////////////////////////////////////// What's happen? On Tue, 2009-10-13 at 14:25 -0700, Ian Lance Taylor wrote: > Mohsen Pahlevanzadeh <mohsen@xxxxxxxxxxxxxxxxx> writes: > > > On Tue, 2009-10-13 at 08:05 -0700, Ian Lance Taylor wrote: > >> Mohsen Pahlevanzadeh <mohsen@xxxxxxxxxxxxxxxxx> writes: > >> > >> > I wrote a program in C, Not C++.It work good.But when i use "-x c++" in > >> > Makefile, i receive following errors: > >> > >> You have to link with the g++ driver. Yes, this is confusing. > >> > >> > CC = gcc > >> > CFLAGS = -g -Wall -pthread -DHAVE_NET_ETHERNET_H -DLIBNET_LIL_ENDIAN > >> > -DDSNIFF_LIBDIR=\"$(libdir)/\" > >> > CPP = -x c++ -llibstcd++ > >> > >> If you use this approach, -llibstdc++ must come at the end of the link > >> line. > > > > > > How do i solve my problem?I must use C++ not C,So i mandatory use g++ or > > -x c++. > > I recommend that you use "g++" rather than "gcc -x c++". > > Ian >