Thread overview
dxguid.lib format
Jan 26, 2002
Jan Knepper
Jan 27, 2002
Walter
January 26, 2002
I am doing an attempt at porting the SDL to DigitalMars.
(http://www.libsdl.org)

This lib is compiled usually with gcc (under Linux or MingWin32),
or VC6.
I did use VC5 to generate the makefiles from the VC6 project files.
I hacked heavily the produced makefile, replacing cl with sc, and
cleaning up the incredible mess.
I still have to use nmake, as smake is not happy yet.

Only the Win32 environment is used and targeted.

*** The compile is done with:

CPP=sc.exe
CPP_PROJ=-5 -a4 -mn -o -ff -ND -NL -v0 -WD -I"..\..\src" -I"..\..\src\audio" \
 -I"..\..\src\video" -I"..\..\src\video\wincommon" -I"..\..\src\video\windx5" \
 -I"..\..\src\events" -I"..\..\src\joystick" -I"..\..\src\cdrom" \
 -I"..\..\src\thread" -I"..\..\src\thread\win32" -I"..\..\src\timer" \
 -I"..\..\include" /I "..\..\include\SDL" \
 -DNDEBUG -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0400 \
 -DENABLE_WINDIB -DENABLE_DIRECTX \
 -o$(INTDIR)\ -c
CPP_OBJS=.\Release/

c{$(CPP_OBJS)}.obj::
   $(CPP) @<<
   $(CPP_PROJ) $<
<<

+++
Compile is going OK, with the exeption of a few
files where NULL is found as undefined, even if <stdio.h> is included !!!

*** The linking is done with:

LINK32=link.exe
LINK32_OPTS=/NOLOGO /ECHOINDIRECT /EXETYPE:NT /MACHINE:I386 /MAP /IMPLIB
LINK32_OUT="$(OUTDIR)\SDL.dll"
LINK32_MAP="$(OUTDIR)\SDL.map"
LINK32_FLAGS=snd.lib snn.lib winmm.lib dxguid.lib kernel32.lib user32.lib \
 gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \
 oleaut32.lib uuid.lib

"$(OUTDIR)\SDL.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
	$(LINK32) @<<
  $(LINK32_OPTS) $(LINK32_OBJS), $(LINK32_OUT), $(LINK32_MAP), $(LINK32_FLAGS)
<<

+++
Here is what I get:

OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

Definition File: (.def):.\Release\SDL_joystick.obj(SDL_joystick)  Offset 0016DH
Record Type 0091
 Error 1: Previous Definition Different : _SDL_NumJoysticks
dxguid.lib
 Warning 2: File Not Found dxguid.lib
\Release\SDL_dx5events.obj(SDL_dx5events)
 Error 42: Symbol Undefined _IID_IDirectInputDevice2A
\Release\SDL_dx5events.obj(SDL_dx5events)
 Error 42: Symbol Undefined _GUID_SysMouse
\Release\SDL_dx5events.obj(SDL_dx5events)
 Error 42: Symbol Undefined _GUID_SysKeyboard
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _IID_IDirectDrawSurface3
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _IID_IDirectDraw2
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_POV
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_Slider
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_RzAxis
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_RyAxis
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_RxAxis
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_ZAxis
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_YAxis
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_XAxis
\Release\SDL_dx5video.obj(SDL_dx5video)
 Error 42: Symbol Undefined _GUID_Key
OPTLINK : Warning 134: No Start Address
NMAKE : fatal error U1077: 'K:\DM\BIN\link.exe' : return code '0xf'
Stop.

+++
dxguid.lib is part of the DirectX SDK
The version I have from DX 7 SDK is not in the proper
format for Optlink.
How can I do the transform ?
I think I would need to get all objects out of
dxguid.lib by using lib.exe, the do a coff2omf, then
do a lib again?
The doc on lib is confusing and of not much help.
coff2omf has no doc in sight.

I do not understand too what I need to add as startup code to have a functionnal dll. (Is something missing from the command line ?)

BTW, are my sc options correct to produce fast and compact objs and dll ?

Help!

TIA

Jean-Pierre Dumas


January 26, 2002
Try to run COFF2OMF on the file.

Jan



"Jean-Pierre H. Dumas" wrote:

> I am doing an attempt at porting the SDL to DigitalMars.
> (http://www.libsdl.org)
>
> This lib is compiled usually with gcc (under Linux or MingWin32),
> or VC6.
> I did use VC5 to generate the makefiles from the VC6 project files.
> I hacked heavily the produced makefile, replacing cl with sc, and
> cleaning up the incredible mess.
> I still have to use nmake, as smake is not happy yet.
>
> Only the Win32 environment is used and targeted.
>
> *** The compile is done with:
>
> CPP=sc.exe
> CPP_PROJ=-5 -a4 -mn -o -ff -ND -NL -v0 -WD -I"..\..\src" -I"..\..\src\audio" \
>  -I"..\..\src\video" -I"..\..\src\video\wincommon" -I"..\..\src\video\windx5" \
>  -I"..\..\src\events" -I"..\..\src\joystick" -I"..\..\src\cdrom" \
>  -I"..\..\src\thread" -I"..\..\src\thread\win32" -I"..\..\src\timer" \
>  -I"..\..\include" /I "..\..\include\SDL" \
>  -DNDEBUG -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0400 \
>  -DENABLE_WINDIB -DENABLE_DIRECTX \
>  -o$(INTDIR)\ -c
> CPP_OBJS=.\Release/
>
> c{$(CPP_OBJS)}.obj::
>    $(CPP) @<<
>    $(CPP_PROJ) $<
> <<
>
> +++
> Compile is going OK, with the exeption of a few
> files where NULL is found as undefined, even if <stdio.h> is included !!!
>
> *** The linking is done with:
>
> LINK32=link.exe
> LINK32_OPTS=/NOLOGO /ECHOINDIRECT /EXETYPE:NT /MACHINE:I386 /MAP /IMPLIB
> LINK32_OUT="$(OUTDIR)\SDL.dll"
> LINK32_MAP="$(OUTDIR)\SDL.map"
> LINK32_FLAGS=snd.lib snn.lib winmm.lib dxguid.lib kernel32.lib user32.lib \
>  gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \
>  oleaut32.lib uuid.lib
>
> "$(OUTDIR)\SDL.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
>         $(LINK32) @<<
>   $(LINK32_OPTS) $(LINK32_OBJS), $(LINK32_OUT), $(LINK32_MAP), $(LINK32_FLAGS)
> <<
>
> +++
> Here is what I get:
>
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
>
> Definition File: (.def):.\Release\SDL_joystick.obj(SDL_joystick)  Offset 0016DH
> Record Type 0091
>  Error 1: Previous Definition Different : _SDL_NumJoysticks
> dxguid.lib
>  Warning 2: File Not Found dxguid.lib
> \Release\SDL_dx5events.obj(SDL_dx5events)
>  Error 42: Symbol Undefined _IID_IDirectInputDevice2A
> \Release\SDL_dx5events.obj(SDL_dx5events)
>  Error 42: Symbol Undefined _GUID_SysMouse
> \Release\SDL_dx5events.obj(SDL_dx5events)
>  Error 42: Symbol Undefined _GUID_SysKeyboard
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _IID_IDirectDrawSurface3
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _IID_IDirectDraw2
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_POV
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_Slider
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_RzAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_RyAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_RxAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_ZAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_YAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_XAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_Key
> OPTLINK : Warning 134: No Start Address
> NMAKE : fatal error U1077: 'K:\DM\BIN\link.exe' : return code '0xf'
> Stop.
>
> +++
> dxguid.lib is part of the DirectX SDK
> The version I have from DX 7 SDK is not in the proper
> format for Optlink.
> How can I do the transform ?
> I think I would need to get all objects out of
> dxguid.lib by using lib.exe, the do a coff2omf, then
> do a lib again?
> The doc on lib is confusing and of not much help.
> coff2omf has no doc in sight.
>
> I do not understand too what I need to add as startup code to have a functionnal dll. (Is something missing from the command line ?)
>
> BTW, are my sc options correct to produce fast and compact objs and dll ?
>
> Help!
>
> TIA
>
> Jean-Pierre Dumas

January 27, 2002
Your options look fine to me.

Yes, you need to run COFF2OMF on the .lib file to change the format. Just
    coff2omf dxguid.lib
should work.

"Jean-Pierre H. Dumas" <dumas.jeanpierre@free.fr> wrote in message news:1103_1012038610@jeanpierre...
> I am doing an attempt at porting the SDL to DigitalMars.
> (http://www.libsdl.org)
>
> This lib is compiled usually with gcc (under Linux or MingWin32),
> or VC6.
> I did use VC5 to generate the makefiles from the VC6 project files.
> I hacked heavily the produced makefile, replacing cl with sc, and
> cleaning up the incredible mess.
> I still have to use nmake, as smake is not happy yet.
>
> Only the Win32 environment is used and targeted.
>
> *** The compile is done with:
>
> CPP=sc.exe
>
CPP_PROJ=-5 -a4 -mn -o -ff -ND -NL -v0 -WD -I"..\..\src" -I"..\..\src\audio" \
>  -I"..\..\src\video" -I"..\..\src\video\wincommon" -I"..\..\src\video\wind
x5" \
>  -I"..\..\src\events" -I"..\..\src\joystick" -I"..\..\src\cdrom" \
>  -I"..\..\src\thread" -I"..\..\src\thread\win32" -I"..\..\src\timer" \
>  -I"..\..\include" /I "..\..\include\SDL" \
>  -DNDEBUG -DWIN32 -D_WINDOWS -D_WIN32_WINNT=0x0400 \
>  -DENABLE_WINDIB -DENABLE_DIRECTX \
>  -o$(INTDIR)\ -c
> CPP_OBJS=.\Release/
>
> c{$(CPP_OBJS)}.obj::
>    $(CPP) @<<
>    $(CPP_PROJ) $<
> <<
>
> +++
> Compile is going OK, with the exeption of a few
> files where NULL is found as undefined, even if <stdio.h> is included !!!
>
> *** The linking is done with:
>
> LINK32=link.exe
> LINK32_OPTS=/NOLOGO /ECHOINDIRECT /EXETYPE:NT /MACHINE:I386 /MAP /IMPLIB
> LINK32_OUT="$(OUTDIR)\SDL.dll"
> LINK32_MAP="$(OUTDIR)\SDL.map"
> LINK32_FLAGS=snd.lib snn.lib winmm.lib dxguid.lib kernel32.lib user32.lib
\
>  gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib \
>  oleaut32.lib uuid.lib
>
> "$(OUTDIR)\SDL.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
> $(LINK32) @<<
>   $(LINK32_OPTS) $(LINK32_OBJS), $(LINK32_OUT), $(LINK32_MAP),
$(LINK32_FLAGS)
> <<
>
> +++
> Here is what I get:
>
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
>
> Definition File: (.def):.\Release\SDL_joystick.obj(SDL_joystick)  Offset
0016DH
> Record Type 0091
>  Error 1: Previous Definition Different : _SDL_NumJoysticks
> dxguid.lib
>  Warning 2: File Not Found dxguid.lib
> \Release\SDL_dx5events.obj(SDL_dx5events)
>  Error 42: Symbol Undefined _IID_IDirectInputDevice2A
> \Release\SDL_dx5events.obj(SDL_dx5events)
>  Error 42: Symbol Undefined _GUID_SysMouse
> \Release\SDL_dx5events.obj(SDL_dx5events)
>  Error 42: Symbol Undefined _GUID_SysKeyboard
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _IID_IDirectDrawSurface3
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _IID_IDirectDraw2
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_POV
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_Slider
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_RzAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_RyAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_RxAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_ZAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_YAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_XAxis
> \Release\SDL_dx5video.obj(SDL_dx5video)
>  Error 42: Symbol Undefined _GUID_Key
> OPTLINK : Warning 134: No Start Address
> NMAKE : fatal error U1077: 'K:\DM\BIN\link.exe' : return code '0xf'
> Stop.
>
> +++
> dxguid.lib is part of the DirectX SDK
> The version I have from DX 7 SDK is not in the proper
> format for Optlink.
> How can I do the transform ?
> I think I would need to get all objects out of
> dxguid.lib by using lib.exe, the do a coff2omf, then
> do a lib again?
> The doc on lib is confusing and of not much help.
> coff2omf has no doc in sight.
>
> I do not understand too what I need to add as startup code to have a functionnal dll. (Is something missing from the command line ?)
>
> BTW, are my sc options correct to produce fast and compact objs and dll ?
>
> Help!
>
> TIA
>
> Jean-Pierre Dumas
>
>