Path: utzoo!attcan!uunet!mcsun!cernvax!chx400!ethz!ethz-inf!mneerach From: mneerach@inf.ethz.ch (Matthias Ulrich Neeracher) Newsgroups: comp.sys.mac.programmer Subject: Re: _CType Link Error Message-ID: <29212@ethz-inf.UUCP> Date: 10 Jul 90 15:58:50 GMT References: <900041@yoyodyne> Organization: Informatik ETH Zurich Lines: 35 In article <900041@yoyodyne> bernied@yoyodyne.ncsa.uiuc.edu writes: > I am having a problem linking with MPW. When my programs use the >"is" (e.g. isalpha, iscntrl, isdigit, isupper, etc) functions from the file > the linker complains: >[...] >_CType as defined in : > extern char _CType[]; > >Does any one have a clue as to what is going on? Is there a fix for this >problem? Is there a problem? I ran into this last weekend. The problem seems to be that somebody seems to rename _CType in every release so if your version of the header and StdCLib.o don't match, you get problems. The name used to be _ctype, I think, in my version of StdCLib.o, it is _p_CType and in the header it is _CType. I found two workarounds: 1) DON'T USE THIS ANY MORE ! DOESN'T WORK ANY MORE ! At the first transition _ctype -> _p_CType, it was possible to just include -ma _ctype=_P_CType in every link. This doesn't work now, because the aforementioned somebody also changed some of the constants, so you get wrong answers with this approach. 2) The easy way out: Remove from ...:CIncludes:CType.h all the macros that have also function prototypes defined. Recompile your C sources. Your program will loose efficiency, but so what. I think it's probably not Apple who is responsible for these constant changes, but the final touches put on the ANSI standard. Standard libraries aren't. Matthias