linker error related to ctype

Hi,
I hava an application, where I mix C and C++ code. ( To be more clear, I have a C-kernel, and a C++-lib added to it)

When I build it, I get some linker errors like:

[elxr] (error) symbol isalnum multiply defined in:
[elxr] (error) symbol isalpha multiply defined in:
[elxr] (error) symbol isblank multiply defined in:
[elxr] (error) symbol iscntrl multiply defined in:
[elxr] (error) symbol isdigit multiply defined in:
[elxr] (error) symbol isgraph multiply defined in:
[elxr] (error) symbol islower multiply defined in:
[elxr] (error) symbol isprint multiply defined in:
[elxr] (error) symbol ispunct multiply defined in:
[elxr] (error) symbol isspace multiply defined in:
[elxr] (error) symbol isupper multiply defined in:
[elxr] (error) symbol isxdigit multiply defined in:
[elxr] (error) symbol tolower multiply defined in:
[elxr] (error) symbol toupper multiply defined in:
[elxr] (error) symbol isascii multiply defined in:
[elxr] (error) symbol toascii multiply defined in:
[elxr] (error) symbol isalnum multiply defined in:
[elxr] (error) symbol isalpha multiply defined in:
[elxr] (error) symbol isblank multiply defined in:
[elxr] (error) symbol iscntrl multiply defined in:
[elxr] (error) symbol isdigit multiply defined in:
[elxr] (error) symbol isgraph multiply defined in:
[elxr] (error) symbol islower multiply defined in:
[elxr] (error) symbol isprint multiply defined in:
[elxr] (error) symbol ispunct multiply defined in:
[elxr] (error) symbol isspac multiply defined in:
[elxr] (error) symbol isupper multiply defined in:
[elxr] (error) symbol isxdigit multiply defined in:
[elxr] (error) symbol tolower multiply defined in:
[elxr] (error) symbol toupper multiply defined in:
[elxr] (error) symbol isascii multiply defined in:
[elxr] (error) symbol toascii multiply defined in:

objs\kernel\syslog.o
objs\kernel\cfdp_server.o

[elxr] (error) symbol isalnum multiply defined in:
[elxr] (error) symbol isalpha multiply defined in:
[elxr] (error) symbol isblank multiply defined in:
[elxr] (error) symbol iscntrl multiply defined in:
[elxr] (error) symbol isdigit multiply defined in:

objs\kernel\syslog.o
objs\kernel\syslog_server.o

[elxr] (error) symbol isgraph multiply defined in:
[elxr] (error) symbol islower multiply defined in:
[elxr] (error) symbol isprint multiply defined in:
[elxr] (error) symbol ispunct multiply defined in:
[elxr] (error) symbol isspace multiply defined in:
[elxr] (error) symbol isupper multiply defined in:
[elxr] (error) symbol isxdigit multiply defined in:
[elxr] (error) symbol tolower multiply defined in:
[elxr] (error) symbol toupper multiply defined in:
[elxr] (error) symbol isascii multiply defined in:
[elxr] (error) symbol toascii multiply defined in:

objs\kernel\syslog.o
objs\kernel\syslog_server.o

Those errors have something to do with ctype, right ?
How can I overcome these errors ?
The short answer is that function overloading is not possible in C, this is because of the way that it exports function names. Which C++ lib are you linking to? Maybe we can help you find an alternative.
I use the following headers from C++ library within my application, which is built as a library.

cmath
ctime
list
new
sstream
iterator

Is this the answer you expect ?

...and could you please tell me the long answer to help me understand why linker complains ?
Topic archived. No new replies allowed.