Date: Wed, 22 Jul 1998 11:19:18 +0300 (IDT) From: Eli Zaretskii To: Hooman Katirai cc: djgpp AT delorie DOT com Subject: Re: DJGPP under WINNT In-Reply-To: <000401bdb4ee$d24d7670$1901030a@WS-hkatirai.netpartners.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Precedence: bulk On Tue, 21 Jul 1998, Hooman Katirai wrote: > Since NT doesn't support the Long File Names (LFN) API I've had to find ways > around it. I changed the libraries > to their 8.3 equivelants. For example std_configuration.h would be turned > into std_co~1.h. Using this approach I've solved the problem where the > compiler does not find the include files. I'm really sorry for all the work you've put into this renaming, because that's not how these problwms should be solved. Your problems all stem from a single cause: you used an unzip program which supports long file names, when you unzipped DJGPP distribution. This causes NT to invent the short 8+3 aliases with those pesky numeric tails, and breaks DJGPP. The correct way to install DJGPP on an NT machine is to use a DOS unzip program which does NOT support long names on NT. This will truncate all the long names to short 8+3 names, exactly like if you were unzipping on DOS. When the short 8+3 names are proper truncations of the long names, DJGPP works correctly even though you specify a long name. This works because when a DJGPP program tries to open a file with a long name, the DOS file-oriented calls transparently truncate the long name to the DOS 8+3 limits, and the call succeeds. > This problem being solved, I now have a new problem -- the linking libraries > with long filenames -- specificaly libstdcxx.a. Since it is too long DJGPP > can't find it. I tried renaming it to libstd.a and adding the "-lstd" to the > command line but it doesn't work because the libraries are order sensitive. You need that library to be called libstdcx.a, i.e. exactly the first 8 characters before the dot. Then it will work.