[ROOT] win32gdk flags

From: Sylvain Heilliette (she26286@club-internet.fr)
Date: Tue May 13 2003 - 22:54:26 MEST


    Hello,

I am curently trying to compile a root gui application using the last (3.05/05) win32gdk variant of root for windows.
I am currently experimenting problems concerning some unresolved external symbols and I 
wonder if these problems are related to wrong compilation and linking options or to some lacking features in win32gdk.

Typically, I compile with :

cl -nologo -TP -I../include -c -O -G6 -GR -GX -MD -DWIN32 -DGDK_WIN32 -D_WINDOWS -DWINVER=0x0400 -nologo -D_X86_=1 -D_DLL -DVISUAL_CPLUSPLUS *.cxx

And I try to link with :

link /LIBPATH:C:\rootwin32gdk\lib -opt:ref -nologo -incremental:no -pdb:none -nodefaultlib -out:multiline.exe DataSet.obj Display.obj Extrema.obj Extrema_Disp.obj FileRequire.obj FitPad.obj gui.obj LimitData.obj LineParam.obj LineParamDisplay.obj LinesSearching.obj multiline.obj NLFitting.obj ReShape.obj Spectrum.obj TGLineContainer.obj TGLineView.obj TGSelFont.obj sr_util.obj gdk-1.3.lib glib-1.3.lib libCint.lib libCore.lib libEG.lib libfreetype.lib libGeom.lib libGeomPainter.lib libGpad.lib libGraf.lib libGraf3d.lib libGui.lib libHbook.lib libHist.lib libHistPainter.lib libHtml.lib libMatrix.lib libMC.lib libMinuit.lib libNew.lib libPhysics.lib libPostscript.lib libProof.lib libRGL.lib libRint.lib libTree.lib libTreePlayer.lib libTreeViewer.lib libWin32gdk.lib msvcrt.lib oldnames.lib kernel32.lib ws2_32.lib mswsock.lib advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib msvcprt.lib

At this stage, I obtain the following error messages :

FitPad.obj : error LNK2001: unresolved external symbol "protected: static unsigned long TGFrame::fgWhitePixel" (?fgWhitePixel@TGFrame@@1KA)
TGLineContainer.obj : error LNK2001: unresolved external symbol "protected: static unsigned long TGFrame::fgWhitePixel" (?fgWhitePixel@TGFrame@@1KA)
TGLineView.obj : error LNK2001: unresolved external symbol "protected: static unsigned long TGFrame::fgWhitePixel" (?fgWhitePixel@TGFrame@@1KA)
FitPad.obj : error LNK2001: unresolved external symbol "protected: static unsigned long TGFrame::fgDefaultFrameBackground" (?fgDefaultFrameBackground@TGFrame@@1KA)
gui.obj : error LNK2001: unresolved external symbol "protected: static unsigned long TGFrame::fgDefaultFrameBackground" (?fgDefaultFrameBackground@TGFrame@@1KA)
TGLineContainer.obj : error LNK2001: unresolved external symbol "protected: static class TGLayoutHints * TGCompositeFrame::fgDefaultHints" (?fgDefaultHints@TGCompositeFrame@@1PAVTGLayoutHints@@A)
TGLineView.obj : error LNK2001: unresolved external symbol "protected: static unsigned long TGFrame::fgBlackPixel" (?fgBlackPixel@TGFrame@@1KA)
TGLineView.obj : error LNK2001: unresolved external symbol "protected: static unsigned long TGFrame::fgDefaultSelectedBackground" (?fgDefaultSelectedBackground@TGFrame@@1KA)
multiline.exe : fatal error LNK1120: 5 unresolved externals

This application perfectly compiles under linux and using the new win32gcc target with windows and cygwin.

According to the root-config script there is no distinction between win32gdk and the standard windows target.
Nevertheless, I think that it is at least necessary to add an extra -DGDK_WIN32 flag for the compilation, but I am not sure that it is enough.

Does anyone has ideas on the best flags to use in order to compile and link with the win32gdk version or/and
on the origin of the unresolved references ?

Thanks in advance for your answer,

Sylvain HEILLIETTE.



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET