www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript

c++ - dxguid.lib format

↑ ↓ ← Jean-Pierre H. Dumas <dumas.jeanpierre free.fr> writes:
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
Jan 26 2002
→ Jan Knepper <jan smartsoft.cc> writes:
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

Jan 26 2002
→ "Walter" <walter digitalmars.com> writes:
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

\
  -I"..\..\src\video" -I"..\..\src\video\wincommon" -I"..\..\src\video\wind

  -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),

 <<

 +++
 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

 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

Jan 26 2002