I am getting error below while compiling http_demo example for mcbstr9. Tried defining these three variables again in Net_config.h as
extern const U8 IP_Broadcast[IP_ADRLEN]; extern const U8 MAC_Broadcast[ETH_ADRLEN]; But getting same error again. Kindly help.
.\Obj\Http_demo.axf: Error: L6200E: Symbol IP_Broadcast multiply defined (by at_ip.o and net_config.o). .\Obj\Http_demo.axf: Error: L6200E: Symbol MAC_Broadcast multiply defined (by at_ethernet.o and net_config.o). .\Obj\Http_demo.axf: Error: L6200E: Symbol igmp_is_member multiply defined (by at_igmp.o and net_config.o).
Ok, so if they are supposed to be defined in net_config.c, then look at WHY they are being defined in the other THREE files. And then FIX that.
Perhaps you're missing a #define somewhere? But you'll need to review the source code to figure that out.
I am not able to find location of other three files. Where are they stored. Following is the link for mcbstr9http_demo. I downloaded that and when recompiling after some necessary configuration changes, getting errors. http://www.keil.com/download/docs/318.asp
One of these three is define as follows in Net_config.c U8 const IP_Broadcast[IP_ADRLEN] = { 255, 255, 255, 255 };
Kindly help.
The organisation of TCPnet could be described as unorthodox.
You shouldn't be making changes to Net_Config.h
You would be expected to have a copy of Net_Config.c in with your project files, but even changes to that should be minimal.
If you want to access information contained in the TCPnet libraries, include external declarations in your files.
I have downloaded given example from Keil Website and recompiling it in uvision4. I am getting error as below. .\Obj\Http_demo.axf: Error: L6200E: Symbol IP_Broadcast multiply defined (by at_ip.o and net_config.o). .\Obj\Http_demo.axf: Error: L6200E: Symbol MAC_Broadcast multiply defined (by at_ethernet.o and net_config.o). .\Obj\Http_demo.axf: Error: L6200E: Symbol igmp_is_member multiply defined (by at_igmp.o and net_config.o).
How can I remove of those errors?
Kindly Help.
You don't have grep, a file manager or can't use find-in-files? Finding the files pulled into a project seems like rather a basic task, do you have anyone around you with more experience who can guide you? A colleague or teacher?
What version of uVision are you using? The date of the download suggests it would need uv4
Dear Sir,
Thank you for the suggestion. But I have used everything before posting the error. There is no file like that. Kindly give some more solution to the problem. I am using Keil uVision4 as well as 5th version.
Well, clearly, the Linker is telling you that there is!
Almost invariably, an object file named <something>.o comes from a source file named <something>.c (or <something>.s or <something>.asm, etc)
Have you searched your entire hard drive for, say, at_ip.* and net_config.*
What "http_demo example" is that, exactly?
Is it a Keil example? Or an ST example? Or some 3rd-party example?
Following is the link of that example. It is from Keil
http://www.keil.com/download/docs/318.asp
"Have you searched your entire hard drive for, say, at_ip.* and net_config.*"
Just remember that there may also be a "random-name".lib that happens to contain an "at_ip.o" so the linker can find files that aren't directly represented in the file system or where the base name isn't represented in the file system.
But there are always developer tools available to solve these kind of problems - since it was developer tools that created the files that the linker processes. And developers who created the linker.
Please make sure that your Net_Config.c version is consistent with your TCPnet library. It is not possible to mix newer configuration files with older TCPnet libraries without modifications.
You are probably using more than 6-year old TCPnet. Newer network configuration files are cleaned and contain mainly #define macro definitions such as those in the dual-stack version:
#define ETH0_MAC_ADDR "1E-30-6C-A2-45-5E" #define ETH0_IP4_ADDR "192.168.0.100" #define ETH0_IP4_MASK "255.255.255.0" #define ETH0_IP4_GATEWAY "192.168.0.254" #define ETH0_IP6_PRIMARY_DNS "2001:4860:4860::8888" #define ETH0_IP6_SECONDARY_DNS "2001:4860:4860::8844"