isalnum not declared CODE
Eljay Love-Jensen
eljay@adobe.com
Thu Jun 17 12:03:00 GMT 2004
Hi Nikolai,
>My Linux filesystem is case sensitive, Cygwin is not.
Just checking.
It is possible to have a case insensitive file system with Linux. Weird,
but possible.
>Did you try make?
Yes, I did the compile using make.
>Did not it give you the 'isalnum' error?
No, it gave me a bunch of other errors because my file structure is not
identical to yours. Hence, I had to tweak the makefile you provided to
refer to locations on my machine.
>Tweaking is not a good solution for me, because the code is rather
complicated.
It will be a hard problem to fix if you don't want to make changes.
I had to make some tweaks to get your toy application to compile. In part
because your example was incomplete and not compilable. In part because my
environment is different from yours, and your make file has hardcoded some
environmentals.
>I suspect that my problem is related to the problem discussed in the
thread (I did not participate in it)
Could very well be. But since your main.ii indicates that the isalnum is
present, that doesn't seem likely.
>Below are the lines related either to ctype.h or isalnum that I found in
main.ii in Cygwin (extern int isalnum (int) throw () was absent).
Interesting. That /usr/include/ctype.h has the isalnum that should be
referenced in /usr/include/c++/3.3.1/cctype header.
The /usr/include/c++/3.3.1/bits/locale_facets.h isalnum has the signature
(char,locale), not (int), and resides in the std:: namespace.
Side note: in your agstring.h file, you have...
#define _String_h 1
...that's a reserved identifier.
Try this...
------ foo.cpp ------
extern "C" {
int __attribute__((__cdecl__)) isalnum (int __c);
}
namespace std
{
using ::isalnum;
}
int foo(int ch)
{
return isalnum(ch);
}
------------------
No #include directives.
g++ -c foo.cpp
Does that compile?
--Eljay
More information about the Gcc-help
mailing list