Thread overview
USE16/USE32 Mismatch.. is this causing my problems?
May 08, 2003
Darren Fitzpatrick
May 08, 2003
Darren Fitzpatrick
May 08, 2003
Walter
May 09, 2003
Darren Fitzpatrick
May 08, 2003
Hi,

I'm trying to change over from MSVC++ to dmc and I've been running into a
few problems.
The program I am trying to compile is a 3D Terrain viewing app writtin using
OpenGL and
the FLTK opengl library. After a few hours of tinkering, I was able to
create a .def file
which fixed my unresolved external woes (or at least now the compiler
doesn't complain,
who knows what will happen once I get my current problem fixed.) I used
MSVC++'s
link /lib /convert to change the lib files to the old COFF format, then used
coff2omf to convert to OMF.
To create my def file I used libunres to get the unmangled versions of
names, then used these to create the def file.
Was this correct? Anyways, my main problem now is the errors OPTLINK is
giving me which
I cannot find explanations to in the documentation. Can anyone give me any
ideas on what
flags/switches I need to use or what the hell I do to resolve this
USE16/USE32 mismatch which
I think is at the root of my problem? From what I can gather, the memory
module the compiler
is using is incorrect. Any help? plllllllease?? Thanks!

Darren Fitzpatrick

*** begin paste***

C:\DOCUME~1\dahden\MYDOCU~1\prog3Win32>dmc terrainmain.cpp terrainview.cpp
terra
inviewui.cpp terrainview.def
terrainmain.cpp:
terrainview.cpp:
terrainviewui.cpp:
link
terrainmain+terrainview+terrainviewui,,,user32+kernel32,terrainview/noi;
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

OPTLINK : Warning 148: USE16/USE32 Mismatch : DGROUP
C:\dm\bin\..\lib\SNN.lib(constart)
 Error 83: Illegal frame on start address
OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented
output

terrainmain.obj(terrainmain)
 Error 35: Cannot Reach TARGET from FRAME at Relative 00007H  from
 Segment _TEXT
 FRAME  = Frame of Group FLAT 0000
 TARGET = External Symbol ??2@YAPAXI@Z (void *cdecl new(unsigned )) 02EBCH
 FIXUPP Type = 32-bit Conditional JMP

--- errorlevel 2

*** end paste***


May 08, 2003
Oops, forgot to mention one thing that may help. The warning about
USE16/USE32 Mismatch and frame errors only appeared after I
made my .def file. Could it be that the compiler expects me to put
more information into the def file than I have included? I only put in
enough to fix the unresolved externals. Anyways, I thought maybe
posting the def file too might help. So here goes:

*** begin TerrainView.def ***
IMPORTS

_glPushMatrix@0=opengl.glPushMatrix
_glPopMatrix@0=opengl.glPopMatrix
_glMatrixMode@4=opengl.glMatrixMode
_glRasterPos2i@8=opengl.glRasterPos2i
_glLoadIdentity@0=opengl.glLoadIdentity
_glClear@4=opengl.glClear
_glColor3f@12=opengl.glColor3f
_glCallList@4=opengl.glCallList
_glIsList@4=opengl.glIsList
_glPolygonMode@8=opengl.glPolygonMode
_glScalef@12=opengl.glScalef
_glRotatef@16=opengl.glRotatef
_glTranslatef@12=opengl.glTranslatef
_glViewport@16=opengl.glViewport
_glBlendFunc@8=opengl.glBlendFunc
_glEnable@4=opengl.glEnable
_glDepthFunc@4=opengl.glDepthFunc
_glEndList@0=opengl.glEndList
_glEnd@0=opengl.glEnd
_glVertex3fv@4=opengl.glVertex3fv
_glColor4f@16=opengl.glColor4f
_glBegin@4=opengl.glBegin
_glShadeModel@4=opengl.glShadeModel
_glNewList@8=opengl.glNewList
_glGenLists@4=opengl.glGenLists
_glDeleteLists@8=opengl.glDeleteLists
?run@Fl@@SAHXZ=fltk.?run@Fl@@SAHXZ
?visual@Fl@@SAHH@Z=fltk.?visual@Fl@@SAHH@Z
?draw@Fl_Window@@MAEXXZ=fltk.?draw@Fl_Window@@MAEXXZ
?resize@Fl_Gl_Window@@UAEXHHHH@Z=fltk.?resize@Fl_Gl_Window@@UAEXHHHH@Z
?flush@Fl_Gl_Window@@UAEXXZ=fltk.?flush@Fl_Gl_Window@@UAEXXZ
?show@Fl_Gl_Window@@UAEXXZ=fltk.?show@Fl_Gl_Window@@UAEXXZ
?hide@Fl_Gl_Window@@UAEXXZ=fltk.?hide@Fl_Gl_Window@@UAEXXZ
?draw_overlay@Fl_Gl_Window@@EAEXXZ=fltk.?draw_overlay@Fl_Gl_Window@@EAEXXZ
?handle@Fl_Window@@UAEHH@Z=fltk.?handle@Fl_Window@@UAEHH@Z
?redraw@Fl_Widget@@QAEXXZ=fltk.?redraw@Fl_Widget@@QAEXXZ
?value@Fl_Valuator@@QAEHN@Z=fltk.?value@Fl_Valuator@@QAEHN@Z
?e_state@Fl@@2HA=fltk.?e_state@Fl@@2HA
?e_y@Fl@@2HA=fltk.?e_y@Fl@@2HA
?e_x@Fl@@2HA=fltk.?e_x@Fl@@2HA
?swap_buffers@Fl_Gl_Window@@QAEXXZ=fltk.?swap_buffers@Fl_Gl_Window@@QAEXXZ
?glutBitmapWidth@@YAHPAXH@Z=fltk.?glutBitmapWidth@@YAHPAXH@Z
?glutBitmapCharacter@@YAXPAXH@Z=fltk.?glutBitmapCharacter@@YAXPAXH@Z
??1Fl_Gl_Window@@UAE@XZ=fltk.??1Fl_Gl_Window@@UAE@XZ
?init@Fl_Gl_Window@@AAEXXZ=fltk.?init@Fl_Gl_Window@@AAEXXZ
??0Fl_Window@@QAE@HHHHPBD@Z=fltk.??0Fl_Window@@QAE@HHHHPBD@Z
?draw@Fl_Box@@MAEXXZ=fltk.?draw@Fl_Box@@MAEXXZ
?handle@Fl_Box@@UAEHH@Z=fltk.?handle@Fl_Box@@UAEHH@Z
?resize@Fl_Widget@@UAEXHHHH@Z=fltk.?resize@Fl_Widget@@UAEXHHHH@Z
??1Fl_Widget@@UAE@XZ=fltk.??1Fl_Widget@@UAE@XZ
?copy@Fl_Image@@UAEPAV1@HH@Z=fltk.?copy@Fl_Image@@UAEPAV1@HH@Z
?color_average@Fl_Image@@UAEXW4Fl_Color@@M@Z=fltk.?color_average@Fl_Image@@U
AEXW4Fl_Color@@M@Z
?desaturate@Fl_Image@@UAEXXZ=fltk.?desaturate@Fl_Image@@UAEXXZ
?label@Fl_Image@@UAEXPAUFl_Menu_Item@@@Z=fltk.?label@Fl_Image@@UAEXPAUFl_Men
u_Item@@@Z
?label@Fl_Image@@UAEXPAVFl_Widget@@@Z=fltk.?label@Fl_Image@@UAEXPAVFl_Widget
@@@Z
?draw@Fl_Image@@UAEXHHHHHH@Z=fltk.?draw@Fl_Image@@UAEXHHHHHH@Z
?uncache@Fl_Image@@UAEXXZ=fltk.?uncache@Fl_Image@@UAEXXZ
??1Fl_Image@@UAE@XZ=fltk.??1Fl_Image@@UAE@XZ
?copy@Fl_Pixmap@@UAEPAVFl_Image@@HH@Z=fltk.?copy@Fl_Pixmap@@UAEPAVFl_Image@@
HH@Z
?color_average@Fl_Pixmap@@UAEXW4Fl_Color@@M@Z=fltk.?color_average@Fl_Pixmap@
@UAEXW4Fl_Color@@M@Z
?desaturate@Fl_Pixmap@@UAEXXZ=fltk.?desaturate@Fl_Pixmap@@UAEXXZ
?label@Fl_Pixmap@@UAEXPAUFl_Menu_Item@@@Z=fltk.?label@Fl_Pixmap@@UAEXPAUFl_M
enu_Item@@@Z
??0Fl_Window@@QAE@HHPBD@Z=fltk.??0Fl_Window@@QAE@HHPBD@Z
?value@Fl_Button@@QAEHH@Z=fltk.?value@Fl_Button@@QAEHH@Z
?step@Fl_Valuator@@QAEXN@Z=fltk.?step@Fl_Valuator@@QAEXN@Z
??0Fl_Value_Slider@@QAE@HHHHPBD@Z=fltk.??0Fl_Value_Slider@@QAE@HHHHPBD@Z
??0Fl_Widget@@IAE@HHHHPBD@Z=fltk.??0Fl_Widget@@IAE@HHHHPBD@Z
??0Fl_Input@@QAE@HHHHPBD@Z=fltk.??0Fl_Input@@QAE@HHHHPBD@Z
?value@Fl_Input_@@QAEHPBD@Z=fltk.?value@Fl_Input_@@QAEHPBD@Z
??0Fl_Button@@QAE@HHHHPBD@Z=fltk.??0Fl_Button@@QAE@HHHHPBD@Z
??0Fl_Group@@QAE@HHHHPBD@Z=fltk.??0Fl_Group@@QAE@HHHHPBD@Z
?end@Fl_Group@@QAEXXZ=fltk.?end@Fl_Group@@QAEXXZ
?show@Fl_Window@@QAEXHPAPAD@Z=fltk.?show@Fl_Window@@QAEXHPAPAD@Z
?bounds@Fl_Slider@@QAEXNN@Z=flkt.?bounds@Fl_Slider@@QAEXNN@Z
?set_data@Fl_Pixmap@@AAEXPBQBD@Z=fltk.?set_data@Fl_Pixmap@@AAEXPBQBD@Z
?measure@Fl_Pixmap@@IAEXXZ=fltk.?measure@Fl_Pixmap@@IAEXXZ
??1Fl_Pixmap@@UAE@XZ=fltk.??1Fl_Pixmap@@UAE@XZ
?uncache@Fl_Pixmap@@UAEXXZ=fltk.?uncache@Fl_Pixmap@@UAEXXZ
?draw@Fl_Pixmap@@UAEXHHHHHH@Z=fltk.?draw@Fl_Pixmap@@UAEXHHHHHH@Z
?label@Fl_Pixmap@@UAEXPAVFl_Widget@@@Z=fltk.?label@Fl_Pixmap@@UAEXPAVFl_Widg
et@@@Z
_gluOrtho2D@32=glu.gluOrtho2D
_gluPerspective@32=glu.gluPerspective
?glutBitmapHelvetica12@@3UGlut_Bitmap_Font@@A=glut32.glutBitmapHelvetica12

*** end TerrainView.def ***


May 08, 2003
The mismatch means you are trying to link together 16 bit code and 32 bit code. Check carefully that all the code, libraries, etc., you are linking together are either all 16 bit code or all 32 bit code.


May 09, 2003
Hmm.. well, I've double checked all the libraries I've added and they
were all converted from 32bit MSVC++ libraries and seem to work
fine. The program is a 32 bit program. This error message seems
particularly interesting: "OPTLINK : Warning 174: 32-bit Segments
Inappropriate for 16-bit Segmented output." Does this mean OPTLINK
is trying to create 16bit output? Then I would understand why I am having
this problem as everything I'm using is 32bit. I thought however that if
a memory model isn't specified OPTLINK defaults to 32bit output??
Perhaps if I explicitly state the memory model I want in my def file?


"Walter" <walter@digitalmars.com> wrote in message news:b9ekpq$1mc1$1@digitaldaemon.com...
> The mismatch means you are trying to link together 16 bit code and 32 bit code. Check carefully that all the code, libraries, etc., you are linking together are either all 16 bit code or all 32 bit code.
>
>