Re: [ROOT] win32gdk flags

From: Sylvain Heilliette (she26286@club-internet.fr)
Date: Wed May 14 2003 - 22:33:57 MEST


    Hello,

     Many thanks for your help.
I am now able to compile and link using your advice ...

The problem now is that I get only an empty gray window
with no button, no menu etc when I run the executable file.
The application was previously correctly running with linux and cygwin.

If someone has an idea to solve this problem ...

Thanks in advance for your answer


  From: Bertrand Bellenot 
  To: Sylvain Heilliette ; roottalk@pcroot.cern.ch 
  Sent: Tuesday, May 13, 2003 11:23 PM
  Subject: Re: [ROOT] win32gdk flags


  Hello Sylvain,

  For static members, you have to use corresponding getters, 
  For example, instead of fgWhitePixel, use GetWhitePixel()
  Hope it helps,

  Cheers,
  Bertrand.
    ----- Original Message ----- 
    From: Sylvain Heilliette 
    To: roottalk@pcroot.cern.ch 
    Sent: Tuesday, May 13, 2003 10:54 PM
    Subject: [ROOT] win32gdk flags


        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