We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hello,
I get this error when compiling Adam Dunkels uIP adapted to LPC-2124 board. fs.c contains the functions to open files (fs_open) and fsdata.c contains the html code of these files. I'm completely stuck with this, I would apreciate any help.
Thanks.
error log: uIP-2124.axf: Error: L6200E: Symbol file_cgi_files multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_cgi_stats multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_cgi_tcp multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_img_bg_png multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_about_html multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_control_html multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_404_html multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_files_footer_plain multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_files_header_html multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_index_html multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_stats_footer_plain multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_stats_header_html multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_tcp_footer_plain multiply defined (by fsdata.o and fs.o). uIP-2124.axf: Error: L6200E: Symbol file_tcp_header_html multiply defined (by fsdata.o and fs.o).
Please read & follow the instructions for posting source code - and pay attention to the 'Preview'
Attention to detail is key in this game!
"I know that I only have to declare (sic) it in one of them and make a reference as extern-declare in the other."
To be precise, you need to define it exactly once - and then use extern declarations as often as you like elsewhere.
You haven't shown your header's contents - are you sure it doesn't contain a definition...?
Sorry for mistakes,
I am going to check header files carefulle and try to resolve these problems, anyway I post them (headers files) just in case someone can help me:
Thank you so much for your help.
fs.h:
#ifndef __FS_H__ #define __FS_H__ #include "uip.h" /** * An open file in the read-only file system. */ struct fs_file { char *data; /**< The actual file data. */ int len; /**< The length of the file data. */ }; /** * Open a file in the read-only file system. * * \param name The name of the file. * * \param file The file pointer, which must be allocated by caller and * will be filled in by the function. */ int fs_open(const char *name, struct fs_file *file); #ifdef FS_STATISTICS #if FS_STATISTICS == 1 u16_t fs_count(char *name); #endif /* FS_STATISTICS */ #endif /* FS_STATISTICS */ /** * Initialize the read-only file system. */ void fs_init(void); #endif /* __FS_H__ */
fsdata.h
#ifndef __FSDATA_H__ #define __FSDATA_H__ #include "uipopt.h" struct fsdata_file { const struct fsdata_file *next; const char *name; const char *data; const int len; #ifdef FS_STATISTICS #if FS_STATISTICS == 1 u16_t count; #endif /* FS_STATISTICS */ #endif /* FS_STATISTICS */ }; struct fsdata_file_noconst { struct fsdata_file *next; char *name; char *data; int len; #ifdef FS_STATISTICS #if FS_STATISTICS == 1 u16_t count; #endif /* FS_STATISTICS */ #endif /* FS_STATISTICS */ }; #endif /* __FSDATA_H__ */
"I post them (headers files) just in case someone can help me"
The text "file_cgi_files" occurs nowhere in either of those files - so the problem must, obviously, lie elsewhere...
there must be a way to implement some filter that would prevent posting of a reply/thread is it contains unformatted code...! That will save you so much heart ache, Andy ;-)
I think it would actually be quite hard to make an effective filter that didn't make too many "false hits"...?
But I still say it's symptomatic of an underlying problem: the instructions are very clearly stated; anyone who's being slack enough to miss them - and to not even notice in the preview - has probably also missed important details about their project for the very same reason
As I said earlier, Attention to detail is key in this game!