[lwip-users] compiling LWIP 1.3.2 on IAR EWARM 6.0

83 views
Skip to first unread message

Carol Lai

unread,
Mar 6, 2012, 11:10:21 AM3/6/12
to lwip-...@nongnu.org

Hi,

 

I’m compiling LWIP 1.3.2 as C++ language in IAR.  But I’m getting the following error message.

 

 

Error[Pe135]: class "tcp_pcb" has no member "lwip_recv" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\tcp.c 837

Error[Pe135]: class "tcp_pcb" has no member "lwip_recv" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\tcp_in.c 279

Error[Pe135]: class "tcp_pcb" has no member "lwip_recv" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\tcp_in.c 324

Error[Pe135]: class "tcp_pcb" has no member "lwip_recv" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\tcp_in.c 336

Error[Pe135]: class "tcp_pcb" has no member "lwip_accept" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\tcp_in.c 639

Error[Pe055]: too many arguments in invocation of macro "recv" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\udp.c 290

Error[Pe135]: class "udp_pcb" has no member "lwip_recv" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\udp.c 290

Error while running C/C++ Compiler

 

 

It appears that IAR is not replacing the macro correctly.  Does anyone know how to set them up correctly for IAR compiler?

Thanks,

 

Carol


“This message and any attachments may contain FW Murphy information that is highly confidential, privileged, and exempt from disclosure. Any recipient other than the intended recipient is advised that dissemination, distribution, copying, or other use of this message is strictly prohibited. If you have received this message in error, please notify the sender immediately, plus delete the message and any backups.”

gold...@gmx.de

unread,
Mar 6, 2012, 12:31:05 PM3/6/12
to Mailing list for lwIP users
Carol Lai wrote:
I’m compiling LWIP 1.3.2 as C++ language in IAR.  But I’m getting the following error message.

 

 

Error[Pe135]: class "tcp_pcb" has no member "lwip_recv" C:\Projects\Plastic\LWIP_Problem\platform\StellarisWare\third_party\lwip-1.3.2\src\core\tcp.c 837


There a at least three things that are strange here:
1. IAR doesn't seem to care that the recv() macro (defined at the end of sockets.h) is a function-like macro but 'recv' is not used as a function in tcp.c. That might be a problem of compiling it as C++ (and not C).
2. It seems like somehow tcp.c includes sockets.h (which it shouldn't) - or where does the redefinition from 'recv' to 'lwip_recv' come from? Did you place an include to sockets.h somewhere in a global header file (e.g. lwipopts.h or cc.h)?
3. tcp.c 837 of lwIP 1.3.2 says "pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);" - I don't see where recv or lwip_recv is referenced??

If you don't find why sockets.h is included from these files, I'd recommend to disable LWIP_COMPAT_SOCKETS first, that should correct it, but you then have to define it to 1 in every application file before including sockets.h (if you really need that feature).

Also, you might want to upgrade to 1.4.0, since 1.3.2 is outdated.


“This message and any attachments may contain FW Murphy information that is highly confidential, privileged, and exempt from disclosure. Any recipient other than the intended recipient is advised that dissemination, distribution, copying, or other use of this message is strictly prohibited. If you have received this message in error, please notify the sender immediately, plus delete the message and any backups.”

LOL, that's a funny footer for a message sent to a public list which is archived in many places on the web :-)

Simon
Reply all
Reply to author
Forward
0 new messages