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++ - Need help linking

↑ ↓ ← parabolis <parabolis softhome.net> writes:
I have been trying to compile the most basic of SDL apps but keep 
getting "Symbol Undefined" messages:
----------------------------------------------------------------
D:\dev\c++\sdl_attempt>dmc attempt SDLmain.lib SDL.lib 
-L/ENTRY:_WinMain 16
link attempt,,,SDLmain+SDL+user32+kernel32/noi/ENTRY:_WinMain 16;
OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

SDLmain.lib(SDL_win32_main)
  Error 42: Symbol Undefined __getcwd
SDLmain.lib(SDL_win32_main)
  Error 42: Symbol Undefined ___mb_cur_max
----------------------------------------------------------------

A quick check of SDLmain.lib shows what it is expecting
----------------------------------------------------------------
D:\dev\c++\sdl_attempt>libunres SDLmain.lib
Unresolved externals:
_SDL_GetError
_SDL_Init
_SDL_Quit
_SDL_SetModuleHandle
_SDL_main
__alloca_probe
__imp__FreeLibrary 4
__imp__GetCommandLineA 0
__imp__GetModuleHandleA 4
__imp__LoadLibraryA 4
__imp____mb_cur_max
__imp___getcwd
__imp___iob
__imp___isctype
__imp___pctype
__imp__exit
__imp__fclose
__imp__fgetc
__imp__fopen
__imp__fprintf
__imp__freopen
__imp__remove
__imp__setbuf
__imp__setvbuf
__imp__strncpy
__imp__strrchr
_atexit
----------------------------------------------------------------

Trying to find the lib that contains these symbols shows:
----------------------------------------------------------------
D:\comp\dm\lib>grep __getcwd *
Binary file sdc.lib matches
Binary file sdl.lib matches
Binary file sdm.lib matches
Binary file sds.lib matches
Binary file sdx.lib matches
----------------------------------------------------------------

Linnking explicity against any of those gives a list of 400+ 
error messages -- the first error in each is "Memory Model 
Conflict." Since there is pretty much a 1:1 correspondence 
between dmc -m? options and sd?.lib files I am assuming each 
corresponds to a library for the memory model. However get_cwd 
and friends need to be implemented somewhere and grep says DMC 
does not do it for me. However grep also says I have no windows 
DLLs to do it either:
----------------------------------------------------------------
D:\comp\dm\lib>grep __getcwd c:\windows\*.dll
   <nothing>
D:\comp\dm\lib>grep __getcwd c:\windows\system\*.dll
   <nothing>
D:\comp\dm\lib>grep __getcwd c:\windows\system32\*.dll
   <nothing>
----------------------------------------------------------------

Any help at all would be greatly appreciated. Thanks in advance 
for taking the time to read this post!
Jan 24 2005
↑ ↓ → "Walter" <newshound digitalmars.com> writes:
"parabolis" <parabolis softhome.net> wrote in message
news:ct3mi0$2cbc$1 digitaldaemon.com...
 ----------------------------------------------------------------

 Trying to find the lib that contains these symbols shows:
 ----------------------------------------------------------------
 D:\comp\dm\lib>grep __getcwd *
 Binary file sdc.lib matches
 Binary file sdl.lib matches
 Binary file sdm.lib matches
 Binary file sds.lib matches
 Binary file sdx.lib matches
 ----------------------------------------------------------------

 Linnking explicity against any of those gives a list of 400+
 error messages -- the first error in each is "Memory Model
 Conflict."

That's because sdc.lib is for 16 bit code, C memory model. sdl.lib is for 16 bit code, L memory model, etc. The Win32 memory model library is snn.lib, which is probably what you're looking for.
Feb 02 2005