January 24, 2005 Need help linking | ||||
---|---|---|---|---|
| ||||
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! |
February 02, 2005 Re: Need help linking | ||||
---|---|---|---|---|
| ||||
Posted in reply to parabolis | "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. |
Copyright © 1999-2021 by the D Language Foundation