Compiling icmp related codes under cygwin (missing “icmp” struct)
Question
I'm using cygwin to compile a network tool(iffinder).
After ./configure
and make
i have a problem that i guess is related to struct icmp
. Where is the icmp
struct in header files. I searched for it in cygwin header files, but i didn't find anything.
How can i compile source codes which need icmp
, in cygwin?
If it helps, you can find the source code of iffinder here
Note: I have ip_icmp.h
in my cygwin's header files.
Compile error:
iffinder.c:1059: warning: "struct icmp" declared inside parameter list
iffinder.c:1059: warning: its scope is only this definition or
declaration, which is probably not what you want iffinder.c: In
function `handle_icmp_error': iffinder.c:1069: error: dereferencing
pointer to incomplete type
...
Solution
iffinder.c
line 54 does #include <netinet/ip_icmp.h>
- is this header file present on your system?
OTHER TIPS
In cygwin, the icmp.h
is empty. I suggest you copy a icmp.h from a open source project, and compile it with your project. Maybe, you have many errors and you have to correct them, but you just need an icmp struct and it will solve your problem.