Error Message "Redifinition of `Struct ...'

Please support our C advertiser: Programming Forums - DaniWeb Sister Site
Reply

Join Date: May 2008
Posts: 4
Reputation: p3_tib2001 is an unknown quantity at this point 
Solved Threads: 0
p3_tib2001's Avatar
p3_tib2001 p3_tib2001 is offline Offline
Newbie Poster

Error Message "Redifinition of `Struct ...'

 
0
  #1
May 16th, 2008
Help!
Now I study about NAT (Network Address Translator), it is a new way about translate IP local to public.
Ok, the point is when I want to install NAT in LINUX, i got error messages like below. I think this is about coding in nat.h. What should I do with the redefinition error?
Thank you for help me.
========================================================
-bash-3.00$ make
making all in nat...
make[1]: Entering directory `/home/petry/Netbench/NetBench-1.1.0/nat'
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c route.c
In file included from route.c:95:
nat.h:165: redefinition of `struct ifnet'
nat.h:174: redefinition of `struct ifqueue'
make[1]: *** [route.o] Error 1
make[1]: Leaving directory `/home/petry/Netbench/NetBench-1.1.0/nat'
make: *** [sub_all] Error 1
========================================================
Reply With Quote Quick reply to this message  
Join Date: Nov 2007
Posts: 18
Reputation: varsha0702 is an unknown quantity at this point 
Solved Threads: 0
varsha0702 varsha0702 is offline Offline
Newbie Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #2
May 16th, 2008
Originally Posted by p3_tib2001 View Post
Help!
Now I study about NAT (Network Address Translator), it is a new way about translate IP local to public.
Ok, the point is when I want to install NAT in LINUX, i got error messages like below. I think this is about coding in nat.h. What should I do with the redefinition error?
Thank you for help me.
========================================================
-bash-3.00$ make
making all in nat...
make[1]: Entering directory `/home/petry/Netbench/NetBench-1.1.0/nat'
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c route.c
In file included from route.c:95:
nat.h:165: redefinition of `struct ifnet'
nat.h:174: redefinition of `struct ifqueue'
make[1]: *** [route.o] Error 1
make[1]: Leaving directory `/home/petry/Netbench/NetBench-1.1.0/nat'
make: *** [sub_all] Error 1
========================================================

hi..
First check whether you have declared structs more than 1 time or not.
To check open a terminal and go to the directory containing the source code, using cd command and than execute command
grep -rin "struct ifnet" .
This will list all the lines which contains above structure than u can trace its multiple declaration or definition.
Reply With Quote Quick reply to this message  
Join Date: Nov 2007
Posts: 18
Reputation: varsha0702 is an unknown quantity at this point 
Solved Threads: 0
varsha0702 varsha0702 is offline Offline
Newbie Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #3
May 16th, 2008
Secondly There can be a change that the header file containing the definition of structures , has been included more than once in a file.
Reply With Quote Quick reply to this message  
Join Date: Sep 2007
Posts: 38
Reputation: BigFormat is an unknown quantity at this point 
Solved Threads: 0
BigFormat BigFormat is offline Offline
Light Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #4
May 16th, 2008
Originally Posted by varsha0702 View Post
Secondly There can be a change that the header file containing the definition of structures , has been included more than once in a file.
Maybe, to avoid the problem I suggest using ifndef directive in headers containing structs.
Reply With Quote Quick reply to this message  
Join Date: May 2008
Posts: 4
Reputation: p3_tib2001 is an unknown quantity at this point 
Solved Threads: 0
p3_tib2001's Avatar
p3_tib2001 p3_tib2001 is offline Offline
Newbie Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #5
May 23rd, 2008
Thanks for the advice. I've tried the solutions but still have errors.
The last time I did that I remark the struct. And I got the error message like this.
==========================================================
-bash-3.00$ make
making all in nat...
make[1]: Entering directory `/home/petry/Netbench/NetBench-1.1.0/nat'
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c route.c
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c radix.c
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c nat.c
nat.c:73: sys/protosw.h: No such file or directory
nat.c:81: sys/mbuf.h: No such file or directory
nat.c:108: netinet/ip.h: No such file or directory
In file included from nat.c:116:
nat.h:108: warning: `FWRITE' redefined
/home/petry/simple//sslittle-na-sstrix/include/fcntlbits.h:59: warning: this is the location of the previous definition
nat.h:109: warning: `FREAD' redefined
/home/petry/simple//sslittle-na-sstrix/include/fcntlbits.h:58: warning: this is the location of the previous definition
nat.c:124: netinet/ip_var.h: No such file or directory
nat.c:127: netinet/tcp.h: No such file or directory
nat.c:128: netinet/udp.h: No such file or directory
nat.c:129: netinet/ip_icmp.h: No such file or directory
make[1]: *** [nat.o] Error 1
make[1]: Leaving directory `/home/petry/Netbench/NetBench-1.1.0/nat'
make: *** [sub_all] Error 1
Reply With Quote Quick reply to this message  
Join Date: Nov 2007
Posts: 18
Reputation: varsha0702 is an unknown quantity at this point 
Solved Threads: 0
varsha0702 varsha0702 is offline Offline
Newbie Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #6
May 23rd, 2008
Originally Posted by p3_tib2001 View Post
Thanks for the advice. I've tried the solutions but still have errors.
The last time I did that I remark the struct. And I got the error message like this.
==========================================================
-bash-3.00$ make
making all in nat...
make[1]: Entering directory `/home/petry/Netbench/NetBench-1.1.0/nat'
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c route.c
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c radix.c
/home/petry/simple/bin/sslittle-na-sstrix-gcc -Wall -DDEBUG -DCONSTANT_PACKET -I/home/petry/Netbench/NetBench-1.1.0/include -DMAX_PACKETS=10 -c nat.c
nat.c:73: sys/protosw.h: No such file or directory
nat.c:81: sys/mbuf.h: No such file or directory
nat.c:108: netinet/ip.h: No such file or directory
In file included from nat.c:116:
nat.h:108: warning: `FWRITE' redefined
/home/petry/simple//sslittle-na-sstrix/include/fcntlbits.h:59: warning: this is the location of the previous definition
nat.h:109: warning: `FREAD' redefined
/home/petry/simple//sslittle-na-sstrix/include/fcntlbits.h:58: warning: this is the location of the previous definition
nat.c:124: netinet/ip_var.h: No such file or directory
nat.c:127: netinet/tcp.h: No such file or directory
nat.c:128: netinet/udp.h: No such file or directory
nat.c:129: netinet/ip_icmp.h: No such file or directory
make[1]: *** [nat.o] Error 1
make[1]: Leaving directory `/home/petry/Netbench/NetBench-1.1.0/nat'
make: *** [sub_all] Error 1
Now here it seems that compiler is not able to find the header files used in nat.c. So specify the search path of those header files in makefile , using -I option.
eg: Header files are somewhere in path /opt/ipp/include
than u can specify the path at the time of compilation or in makefile using option -I as shown below.
gcc myprog.c -I/opt/ipp/include
where myprog.c is my program to be compiled and the header files required by it are present in apth /opt/ipp/include.
Reply With Quote Quick reply to this message  
Join Date: May 2008
Posts: 4
Reputation: p3_tib2001 is an unknown quantity at this point 
Solved Threads: 0
p3_tib2001's Avatar
p3_tib2001 p3_tib2001 is offline Offline
Newbie Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #7
May 23rd, 2008
In the Makefile already use the -I option, like this :
nat.o: nat.c $(HEADER_FILES)
$(CC) $(CFLAG) -I$(NETINCLUDE) -DMAX_PACKETS=$(MAX_PACKETS) -c nat.c

any idea?
Reply With Quote Quick reply to this message  
Join Date: Nov 2007
Posts: 18
Reputation: varsha0702 is an unknown quantity at this point 
Solved Threads: 0
varsha0702 varsha0702 is offline Offline
Newbie Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #8
May 23rd, 2008
Originally Posted by p3_tib2001 View Post
In the Makefile already use the -I option, like this :
nat.o: nat.c $(HEADER_FILES)
$(CC) $(CFLAG) -I$(NETINCLUDE) -DMAX_PACKETS=$(MAX_PACKETS) -c nat.c

any idea?
Check what has been assigned to varialbe NETINCLUDE and what is the actual path of the header files included in .c file? Are they same?
Reply With Quote Quick reply to this message  
Join Date: May 2008
Posts: 4
Reputation: p3_tib2001 is an unknown quantity at this point 
Solved Threads: 0
p3_tib2001's Avatar
p3_tib2001 p3_tib2001 is offline Offline
Newbie Poster

Re: Error Message "Redifinition of `Struct ...'

 
0
  #9
May 29th, 2008
Dear varsha0702,

I've copy file that needed in the appropriate folder. Then, fix another error after copy those files. But, now I got strange error. This error comes from the main program of nat, that is nat.c. If I compile with gcc from Linux, nothing problem with this nat.c. But, now I want to compile the nat.c with gcc from SimpleScalar, and got this error. Here's some errors :
=======================================================
nat.c:1787: invalid type argument of `->'
nat.c:1790: invalid type argument of `->'
nat.c:1791: invalid type argument of `->'
nat.c:1793: invalid type argument of `->'
nat.c:1794: invalid type argument of `->'
nat.c:1795: invalid type argument of `->'
nat.c:1796: invalid type argument of `->'
nat.c:1797: invalid type argument of `->'
nat.c:1798: invalid type argument of `->'
nat.c:1807: `msk' undeclared (first use this function)
nat.c:1810: `iph' undeclared (first use this function)
nat.c:1831: warning: assignment makes integer from pointer without a cast
nat.c:1852: invalid type argument of `->'
nat.c:1853: invalid type argument of `->'
nat.c:1855: invalid type argument of `->'
nat.c:1856: invalid type argument of `->'
nat.c:1857: invalid type argument of `->'
nat.c:1874: invalid type argument of `->'
nat.c:1875: invalid type argument of `->'
nat.c:1880: `csump' undeclared (first use this function)
nat.c:1889: invalid type argument of `->'
nat.c:1889: `TCP_CLOSE' undeclared (first use this function)
nat.c:1890: invalid type argument of `->'
nat.c:1890: `TCP_LAST_ACK' undeclared (first use this function)
nat.c:1893: `udphdr_t' undeclared (first use this function)
nat.c:1893: `udp' undeclared (first use this function)
nat.c:1893: parse error before `)'
nat.c:1899: invalid type argument of `->'
nat.c:1900: invalid type argument of `->'
nat.c:1903: invalid type argument of `->'
nat.c: At top level:
nat.c:1212: warning: `nat_delnat' defined but not used
make[1]: *** [nat.o] Error 1
make[1]: Leaving directory `/home/petry/Netbench/NetBench-1.1.0/nat'
make: *** [sub_all] Error 1
======================================================

Anyone can help me?.. Thank you
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC