Talk:Compiling EiffelStudio

i installed everything acording to the howto here in the wiki

i have win2000 on my machine installed the 3 .net products acording to the win32 c compiler installation page installed eiffel studio 57 got everthyng from the svn compiled the libraries

when compiling the eiffel studio the following error occurs:


  big_file_C1_c.c
  1 Datei(en) kopiert.
  emain.c
  1 Datei(en) kopiert.
  /usr/bin/link: invalid option -- S
  Try `/usr/bin/link --help' for more information.
  NMAKE : fatal error U1077: 'D:\Programme\cygwin\bin\link.EXE' : return code '0x1'
  Stop.


the same error occurs when i try to compiel a eiffel project from the downloaded eiffel studio... any ideas help ??


Patrickr 21:21, 13 April 2006 (CEST)

There seems to be a problem with the paths and the wrong link command is used. Try to change the order of the paths so that the linker from the microsoft compiler is found before the linker in the cygwin environment.

try 2

thx for the fast response ok, i changed my path and put cygwin at the end:

next error:

  big_file_C1_c.c
  1 Datei(en) kopiert.
  emain.c
  1 Datei(en) kopiert.
  Microsoft (R) Incremental Linker Version 8.00.50727.42
  Copyright (C) Microsoft Corporation.  All rights reserved.
  
  -STACK:5000000 -NODEFAULTLIB:libc -STACK:5000000 -NODEFAULTLIB:libc -SUBSYSTEM:C
  ONSOLE -OUT:ec.exe
  e1\emain.obj
  D:\PROGRA~1\EIFFEL~1\studio\spec\windows\lib\msc\mtwkbench.lib
  E:\Files\'ETH~1\SASS06~1\57dev\C\bench\mtcompiler.lib
  E:\Files\'ETH~1\SASS06~1\57dev\C\platform\platform.lib
  E:\Files\'ETH~1\SASS06~1\57dev\Eiffel\library\cli_writer\spec\msc\lib\cli_writer.lib
  USER32.lib WSOCK32.lib ADVAPI32.lib GDI32.lib SHELL32.lib COMDLG32.lib UUID.lib
  OLE32.lib OLEAUT32.lib COMCTL32.lib MPR.LIB
  ec.res
  C79\Cobj79.lib C78\Cobj78.lib C77\Cobj77.lib C76\Cobj76.lib C75\Cobj75.lib
  C74\Cobj74.lib C73\Cobj73.lib C72\Cobj72.lib C71\Cobj71.lib C70\Cobj70.lib
  C69\Cobj69.lib C68\Cobj68.lib C67\Cobj67.lib C66\Cobj66.lib C65\Cobj65.lib
  C64\Cobj64.lib C63\Cobj63.lib C62\Cobj62.lib C61\Cobj61.lib C60\Cobj60.lib
  C59\Cobj59.lib C58\Cobj58.lib C57\Cobj57.lib C56\Cobj56.lib C55\Cobj55.lib
  C54\Cobj54.lib C53\Cobj53.lib C52\Cobj52.lib C51\Cobj51.lib C50\Cobj50.lib
  C49\Cobj49.lib C48\Cobj48.lib C47\Cobj47.lib C46\Cobj46.lib C45\Cobj45.lib
  C44\Cobj44.lib C43\Cobj43.lib C42\Cobj42.lib C41\Cobj41.lib C40\Cobj40.lib
  C39\Cobj39.lib C38\Cobj38.lib C37\Cobj37.lib C36\Cobj36.lib C35\Cobj35.lib
  C34\Cobj34.lib C33\Cobj33.lib C32\Cobj32.lib C31\Cobj31.lib C30\Cobj30.lib
  C29\Cobj29.lib C28\Cobj28.lib C27\Cobj27.lib C26\Cobj26.lib C25\Cobj25.lib
  C24\Cobj24.lib C23\Cobj23.lib C22\Cobj22.lib C21\Cobj21.lib C20\Cobj20.lib
  C19\Cobj19.lib C18\Cobj18.lib C17\Cobj17.lib C16\Cobj16.lib C15\Cobj15.lib
  C14\Cobj14.lib C13\Cobj13.lib C12\Cobj12.lib C11\Cobj11.lib C10\Cobj10.lib
  C9\Cobj9.lib C8\Cobj8.lib C7\Cobj7.lib C6\Cobj6.lib C5\Cobj5.lib
  C4\Cobj4.lib C3\Cobj3.lib C2\Cobj2.lib C1\Cobj1.lib E1\Eobj1.lib
  LINK : fatal error LNK1181: cannot open input file'
  E:\Files\'ETH~1\SASS06~1\57dev\C\bench\mtcompiler.lib'
  NMAKE : fatal error U1077: '"C:\Programme\Microsoft Visual Studio 8\VC\bin\link.EXE"' : return code '0x49d'
  Stop.

sorry wont be able to compile again until after eastern

Manus 22:00, 13 April 2006 (PST)

Looks like the runtime was not compiled. See the instructions at Compiling EiffelStudio.

FoB 11:23, 18 April 2006 (CEST)

when i compile the runtime i get 10 errors "path not found" it looks like the following line is guilty of producing this error

  "%MSVCDir%\bin\nmake" %1

i added the following line to the file configure.bat (i tried both nmake i have on my computer)

  set MSVCDir=D:\Programme\psdk;C:\Programme\Microsoft Visual Studio 8\VC\bin
  set MSVCDir=D:\Programme\Microsoft.NET\SDK\v2.0;C:\Programme\Microsoft Visual Studio 8\VC\bin

unfortunatly i now get 10 times the following error:

  Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

Patrickr 17:09, 18 April 2006 (CEST)

You have to give a single path, not a list of paths. The correct path should be C:\Programme\Microsoft Visual Studio 8\VC\bin


FoB 19:43, 18 April 2006 (CEST)
the problem is, that nmake.exe is in psdk folder and the cl.exe is in the VC\bin folder if I only give a singel path either nmake or cl aren't found. giving a set of pathes both executables are found, but still the syntax error occurs...


FoB 08:51, 25 April 2006 (CEST)
my problem is solved :-)
manus has posted the solution on the es-devl mailinglist (link).
you need to get this file (windows-msc-x86-2005) and replace the existing one: %EIFFEL_SRC%/C/CONFIGS/windows-msc-x86

mkdep not found

while compiling the run-time on linux I get the following error:

  /bin/sh: /home/manus/local/56dev/C/mkdep: Datei oder Verzeichnis nicht gefunden (file or directory not found)
  make[2]: *** Keine Regel vorhanden, um das Target »MTidrs.o«,
    benötigt von »all«, zu erstellen.  Schluss.
  make[1]: *** [subdirs] Fehler 1
  make: *** [all] Fehler 2

I don't have any idea why it looks for mkdep in that directory.

Manus 9:25, 26 April 2006 (PST)

This errors is harmless if you do not change the dependencies of the runtime header files. If you do, make sure to update this value to $EIFFEL_SRC/C/mkdep so that the generated Makefile has the proper dependencies.

Eiffel Delivery

In the whole Compiling EiffelStudio Routine there is no word about building Eiffel Delivery. Here's the instructions for linux from the es-devel mailinglist:

To build the minimal repository of the compiler, do the following checkout:

mkdir Eiffel57
cd Eiffel57
svn co /trunk/Delivery/studio
svn co /trunk/Delivery/eifinit

cd studio/spec
mkdir $ISE_PLATFORM
mkdir $ISE_PLATFORM/bin
mkdir $ISE_PLATFORM/include
mkdir $ISE_PLATFORM/lib

cp unix/* $ISE_PLATFORM/bin
rm -rf unix

cd $EIFFEL_SRC/C/run-time
cp *.h $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include
cp ../config.sh $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include
cp lib* $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/lib
cp x2c $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
cd ..
cp ipc/daemon/estudio $ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin

mkdir $ISE_EIFFEL/studio/help/defaults/$ISE_PLATFORM
mv $ISE_EIFFEL/studio/help/defaults/unix/*
$ISE_EIFFEL/studio/help/defaults/$ISE_PLATFORM
rm -rf $INSTALL_DIR/studio/help/defaults/unix

DavidFlatz 13:07, 2 May 2006 (CEST)

compiling errors

I get errors while compiling ES:

  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/bench/libmtcompiler.a: Datei oder Verzeichnis nicht gefunden
  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/ipc/ewb/libmtewb.a: Datei oder Verzeichnis nicht gefunden
  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/ipc/shared/libipc.a: Datei oder Verzeichnis nicht gefunden
  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/platform/libplatform.a: Datei oder Verzeichnis nicht gefunden
  make: *** [ec] Fehler 1

Of course it says that I should get errors and I do the thing with sed and get:

  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/bench/libmtwcompiler.a: Datei oder Verzeichnis nicht gefunden
  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/ipc/ewb/libmtewb.a: Datei oder Verzeichnis nicht gefunden
  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/ipc/shared/libipc.a: Datei oder Verzeichnis nicht gefunden
  gcc: /home/maser/eth/semester4/Software_Architecture/eiffelsoftware/57dev//C/platform/libplatform.a: Datei oder Verzeichnis nicht gefunden
  make: *** [ec] Fehler 1

This isn't normal, is it?

Looks to me that the run-time in C was not properly compiled. Can you check that ./quick_configure generates all the above without errors?

--manus 23:46, 2 May 2006 (CEST)

Well, i get the mkdep not found error. How harmless is that error? If I do a find . -iname "*.a" I get nothing, so I guess it doesn't generate the files. (I get the same error with the automatic build script)

Maser 00:42, 3 May 2006 (CEST)