Re: [ROOT] win32gdk flags

From: Bertrand Bellenot (bellbert@scopus.ch)
Date: Tue May 13 2003 - 23:23:56 MEST


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_WIN
DOWS -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 -nod
efaultlib -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