Cygwin / Eclipse / root

Hi there,

I got a problem with compiling root examples on my win32xp platform.
The tools I installed are “root”, “cygwin” and “eclipse” and the samples
I tried to compile was /root/test/guitest .
I get the following error message:
*** multiple target patterns. Stop.
In the net I found some solution by replacing the include paths with
unix style paths in eclipse.
Didn’t help.

Anyone got the same problem and a solution?

Cheers,
Joachim

Hi,

you could tell eclipse that you want make to be started as make -p. This will produce a lot of output, but you’ll see the problematic rule - as you said, it’s probably going to be a windows style path. Once you’ve spotted it you’ll surely be able to fix it!

Cheers, Axel.

Hi Axel,

Thank you, but it won’t work.
I always get the same error message ‘multiple target patterns. Stop’.
I think I tried every possible way of giving eclipse path names.

Multiple frustration. Stop?

Cheers,
Joachim

Hi,
did you try with make -p? What’s the output? Please attach it as a tar.gz.
Cheers, Axel.

Hi Axel,

I am too new in this business to follow your steps. I don’t get any further
output than “multiple target patterns” when I check the -p option in eclipse.
I am not able to write makefiles and actually I don’t understand (yet) the need of them at all. That’s why I use eclipse.
If I play around with the include paths in eclipse, I get either the above
error message or the compiler complains about already defined stuff.
Actually, I get different outputs each time I run “Build all”. I will try to
learn more about all this before I bother you with further questions.

Cheers and thanks,
Joachim

Hi,

Anyway, one of the ouputs I get attached.

cheers,
Joachim
output.txt (9.33 KB)

Hi,

try to specify “/cygdrive/c/root/include” as include path instead of “C:\root\include”. And I believe your ROOT build was with the Microsoft Visual C++ compiler, while you are trying to build with cygwin GCC. Those two are not compatible. You should probably use MS DevStudio Express which costs 0$ instead of Eclipse; check Google for where to get it.

Cheers, Axel.

Hi Axel,

I gave it up and started to use VC++ 8.0 as we now have a license.
Anyway, I encounter problems just compiling the RootIDE example
which can be found in $Rootsys\test. Why I doesn’t just compile? There
is even a project file. I included all libraries (except libnew.lib) and still
get the following error messages (on the web):
people.web.psi.ch/grillenberger/ … ildLog.htm

Thanks for any help.

Cheers,
Joachim

PS: I followed the installation guide
gentit.home.cern.ch/gentit/roota … Debug.html

Hi Joachim,

As your BuildLog says:
main : warning PRJ0042 : The ‘Outputs’ property for the custom build step for file ‘LinkDef.h’ is not set. The custom build step will be skipped.
This means the dictionary is not generated, and from there come the unresolved externals…
Please verify in the project properties, In BuildEvents, Pre-Build Event, this command exists:
rootcint -f RIDEDict.cxx: TGRootIDE.h LinkDef.h
(this should generate the dictionary)
And RIDEDict.cxx must be included in your project source files.

You can also take a look at this thread: root.cern.ch/phpBB2/viewtopic.php?t=3121

HTH,
Bertrand.

Hi Bertrand,

Looks much better now, but I still got errors
people.web.psi.ch/grillenberger/ … ildLog.htm

Thank you and don’t work on Sundays
:smiley:

Cheers,
Joachim

Hi Joachim,

OK, I will try to understand - tomorrow :wink:
BTW, why don’t you just type “make” in $ROOTSYS/test/RootIDE inside a cygwin bash shell?

Cheers,
Bertrand.

[quote=“bellenot”]Hi Joachim,

OK, I will try to understand - tomorrow :wink:
BTW, why don’t you just type “make” in $ROOTSYS/test/RootIDE inside a cygwin bash shell?
[/quote]

I tried (with PATH-variables set) but get:
$ make
cl -Z7 -nologo -I/cygdrive/c/root//include -FIw32pragma.h -MD -GR -GX -G5 -I’c:\root\include’ -c RIDEDict.cxx
make: *** [RIDEDict.obj] Error 53

Cheers,
Joachim

OK, apparently the generated dictionary is corrupted…
Could you try the following:
cd RootIDE
make distclean
make
The output should look like:

code [213] make
cl -Z7 -nologo -I/c/home/bellenot/root/include -FIw32pragma.h -MDd -GR -GX -G5 -
I’c:\home\bellenot\root\include’ -c TGRootIDE.cxx
TGRootIDE.cxx
cl -Z7 -nologo -I/c/home/bellenot/root/include -FIw32pragma.h -MDd -GR -GX -G5 -
I’c:\home\bellenot\root\include’ -c main.cxx
main.cxx
Generating dictionary RIDEDict.cxx…
cl -Z7 -nologo -I/c/home/bellenot/root/include -FIw32pragma.h -MDd -GR -GX -G5 -
I’c:\home\bellenot\root\include’ -c RIDEDict.cxx
RIDEDict.cxx
link -debug -nologo TGRootIDE.obj main.obj RIDEDict.obj -include:_G__cpp_setupG
__Net -include:_G__cpp_setupG__IO -include:_G__cpp_setupG__Hist -include:_G__cpp
_setupG__Graf1 -include:_G__cpp_setupG__G3D -include:_G__cpp_setupG__GPad -inclu
de:_G__cpp_setupG__Tree -include:_G__cpp_setupG__Rint -include:_G__cpp_setupG__P
ostScript -include:_G__cpp_setupG__Matrix -include:_G__cpp_setupG__Physics -incl
ude:_G__cpp_setupG__Gui1 ‘c:\home\bellenot\root\lib\libCore.lib’ ‘c:\home\bellen
ot\root\lib\libCint.lib’ ‘c:\home\bellenot\root\lib\libRIO.lib’ ‘c:\home\belleno
t\root\lib\libNet.lib’ ‘c:\home\bellenot\root\lib\libHist.lib’ ‘c:\home\bellenot
\root\lib\libGraf.lib’ ‘c:\home\bellenot\root\lib\libGraf3d.lib’ ‘c:\home\bellen
ot\root\lib\libGpad.lib’ ‘c:\home\bellenot\root\lib\libTree.lib’ ‘c:\home\bellen
ot\root\lib\libRint.lib’ ‘c:\home\bellenot\root\lib\libPostscript.lib’ ‘c:\home
bellenot\root\lib\libMatrix.lib’ ‘c:\home\bellenot\root\lib\libPhysics.lib’ ‘c:
home\bellenot\root\lib\libGui.lib’ “c:\home\bellenot\root/lib/libGuiHtml.lib” “
c:\home\bellenot\root/lib/libHtml.lib” -out:RIDE.exe
Creating library RIDE.lib and object RIDE.exp
RIDE.exe done
(pcphsft21) [214][/code]
(it may change a bit, as this output example is with MSVC++ 7.1)

Cheers,
Bertrand.

Hi and thanks. Still the error 53:

grillenberger@pc6529 /cygdrive/c/root/test/RootIDE
$ make
cl -Z7 -nologo -I/cygdrive/c/root//include -FIw32pragma.h -MD -GR -GX -G5 -I'c:\
root\include' -c TGRootIDE.cxx
make: *** [TGRootIDE.obj] Error 53

grillenberger@pc6529 /cygdrive/c/root/test/RootIDE
$

cheers,
Joachim

Strange… I never seen this problem before…

can you check that ROOTSYS is set correctly? (i.e. c:\root)
If it is set correctly, can you try to mount c: as /c with the following command (in a cygwin shell): mount c: /c(to avoid /cygdrive/c), and then try again.

– Bertrand.

[quote=“bellenot”]Strange… I never seen this problem before…

can you check that ROOTSYS is set correctly? (i.e. c:\root)
If it is set correctly, can you try to mount c: as /c with the following command (in a cygwin shell): mount c: /c(to avoid /cygdrive/c), and then try again.

– Bertrand.[/quote]
Hi,

Tried everything. Nothing works :frowning: Also the reinstallation makes me sad.
I dont know… Gotta give up?

Cheers,
Joachim

Joachim,

There is no reason to give up, using cygwin to compile Root should be easy (many users are using this way).
Can you post your environment variables (as ROOTSYS, PATH, LIB, INCLUDE,…) and your compiler and linker versions (just type cl and link in a command prompt)

– Bertrand.

Ok,

The environment looks like this:

$ env HOMEPATH=\Documents and Settings\grillenberger MANPATH=/usr/local/man:/usr/share/man:/usr/man::/usr/ssl/man:/usr/share/qt3/doc/ man:/usr/X11R6/man APPDATA=C:\Documents and Settings\grillenberger\Application Data HOSTNAME=pc6529 TERM=cygwin PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 6, GenuineIntel WINDIR=C:\WINDOWS VS80COMNTOOLS=C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\ OSLANGUAGE=G QTDIR=/usr/lib/qt3 OLDPWD=/c/root/Test USERDOMAIN=PSICH OS=Windows_NT ALLUSERSPROFILE=C:\Documents and Settings\All Users USER=grillenberger TEMP=/c/DOCUME~1/GRILLE~1/LOCALS~1/Temp COMMONPROGRAMFILES=C:\Program Files\Common Files QTJAVA=C:\Program Files\Java\jre1.5.0_06\lib\ext\QTJava.zip USERNAME=grillenberger INSTSHARE=INSTNT5 INSTSERVER=WSDPRODW PROCESSOR_LEVEL=6 PATH=/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/c/WINDOWS/system32:/c/WINDOWS: /c/WINDOWS/System32/Wbem:/c/Program Files/Common Files/Adobe/AGL:/c/Program File s/OpenAFS/Client/Program:/c/Program Files/OpenAFS/Common:/c/Program Files/QuickT ime/QTSystem/:/c/Program Files/mad/madx/:/c/Program Files/Microsoft SQL Server/9 0/Tools/binn/:/c/root/bin:/usr/bin:/c/Program Files/Microsoft Visual Studio 8/VC /bin:/usr/lib/lapack FP_NO_HOST_CHECK=NO PWD=/c/root/Test/RootIDE SYSTEMDRIVE=C: INSTTEMP=TEMP USERPROFILE=C:\Documents and Settings\grillenberger QMAKESPEC=/usr/lib/qt3/mkspecs/cygwin-g++ PS1=\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ LOGONSERVER=\\DC01 PROCESSOR_ARCHITECTURE=x86 !C:=C:\cygwin\bin ROOTSYS=C:\root SHLVL=1 HOME=/cygdrive/c/Documents and Settings/grillenberger USERDNSDOMAIN=d.psi.ch PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH HOMEDRIVE=C: PROMPT=$P$G COMSPEC=C:\WINDOWS\system32\cmd.exe TMP=/c/DOCUME~1/GRILLE~1/LOCALS~1/Temp SYSTEMROOT=C:\WINDOWS PYTHONPATH=C:\root\bin PRINTER=\\WINPRINTW.psi.ch\WBGA_C20_1 CVS_RSH=/bin/ssh PROCESSOR_REVISION=0f06 CLASSPATH=.;C:\Program Files\Java\jre1.5.0_06\lib\ext\QTJava.zip PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig MAKE_MODE=unix INFOPATH=/usr/local/info:/usr/share/info:/usr/info: PROGRAMFILES=C:\Program Files NUMBER_OF_PROCESSORS=2 INCLUDE=/c/root/cint/include SESSIONNAME=Console COMPUTERNAME=PC6529 _=/usr/bin/env

Today I get the following error message:

$ make cl -Z7 -nologo -I/c/root/include -FIw32pragma.h -MDd -EHs -GR -I'c:\root\include ' -c TGRootIDE.cxx TGRootIDE.cxx c:\root\include\Rtypeinfo.h(32) : fatal error C1083: Cannot open include file: ' typeinfo': No such file or directory make: *** [TGRootIDE.obj] Error 2

Cheers,
Joachim

OK, I think the problem comes from incomplete environment settings for Visual Studio…
To set-up correctly the environment variables for Visual Studio, you should add this line at the beginning of your cygwin.bat:call "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"(please adapt to .NET 2005)
Your settings must contain INCLUDE and LIB variables, looking like this:

INCLUDE=C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include;And:

LIB=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib;C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Lib\;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib;C:\Program Files\Microsoft Visual Studio\DF98\LIB; (still to be adapted to .NET 2005) Then everything should work properly.

Cheers,
Bertrand.

Ok,

Now I get this:

$ make
cl -Z7 -nologo -I/c/root/include -FIw32pragma.h -MDd -EHs -GR -I'c:\root\include
' -c TGRootIDE.cxx
TGRootIDE.cxx
cl -Z7 -nologo -I/c/root/include -FIw32pragma.h -MDd -EHs -GR -I'c:\root\include
' -c TMRootIDE.cxx
TMRootIDE.cxx
cl -Z7 -nologo -I/c/root/include -FIw32pragma.h -MDd -EHs -GR -I'c:\root\include
' -c TMusterdict.cxx
TMusterdict.cxx
cl -Z7 -nologo -I/c/root/include -FIw32pragma.h -MDd -EHs -GR -I'c:\root\include
' -c main.cxx
main.cxx
Generating dictionary RIDEDict.cxx...
cl -Z7 -nologo -I/c/root/include -FIw32pragma.h -MDd -EHs -GR -I'c:\root\include
' -c RIDEDict.cxx
RIDEDict.cxx
link -debug -nologo  TGRootIDE.obj TMRootIDE.obj TMusterdict.obj main.obj RIDEDi
ct.obj -include:_G__cpp_setupG__Net -include:_G__cpp_setupG__IO -include:_G__cpp
_setupG__Hist -include:_G__cpp_setupG__Graf1 -include:_G__cpp_setupG__G3D -inclu
de:_G__cpp_setupG__GPad -include:_G__cpp_setupG__Tree -include:_G__cpp_setupG__R
int -include:_G__cpp_setupG__PostScript -include:_G__cpp_setupG__Matrix -include
:_G__cpp_setupG__Physics -include:_G__cpp_setupG__Gui1 'c:\root\lib\libCore.lib'
 'c:\root\lib\libCint.lib' 'c:\root\lib\libRIO.lib' 'c:\root\lib\libNet.lib' 'c:
\root\lib\libHist.lib' 'c:\root\lib\libGraf.lib' 'c:\root\lib\libGraf3d.lib' 'c:
\root\lib\libGpad.lib' 'c:\root\lib\libTree.lib' 'c:\root\lib\libRint.lib' 'c:\r
oot\lib\libPostscript.lib' 'c:\root\lib\libMatrix.lib' 'c:\root\lib\libPhysics.l
ib' 'c:\root\lib\libGui.lib'  "C:\root/lib/libGuiHtml.lib" "C:\root/lib/libHtml.
lib" -out:RIDE.exe
link: invalid option -- d
Try `link --help' for more information.
make: *** [RIDE.exe] Error 1

Never ending story :frowning:

Cheers,
Joachim