gm2
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gm2] -fmakeall doesn't recognize functions in object files


From: Martin Kalbfuß
Subject: [Gm2] -fmakeall doesn't recognize functions in object files
Date: Tue, 24 Nov 2009 16:32:13 +0100

gm2 -fiso -fmakeall -o test test.mod -I../src/sk -lSDL

When I do this I get

/tmp/cctd4wHj.a(SKVideo.o): In function `_M2_SKVideo_init':
SKVideo.mod:(.text+0x7): undefined reference to `InitVideo'
/tmp/cctd4wHj.a(SKVideo.o): In function `_M2_SKVideo_finish':
SKVideo.mod:(.text+0x14): undefined reference to `QuitVideo'
/tmp/cctd4wHj.a(test.o): In function `_M2_test_init':
test.mod:(.text+0x9): undefined reference to `InitTime'
test.mod:(.text+0x2d): undefined reference to `SetVideoMode'
test.mod:(.text+0x53): undefined reference to `LoadBMP'
test.mod:(.text+0x6f): undefined reference to `DisplayFormat'
test.mod:(.text+0x8b): undefined reference to `FreeSurface'
test.mod:(.text+0xd4): undefined reference to `MapRGB'
test.mod:(.text+0x102): undefined reference to `SetColorKey'
test.mod:(.text+0x125): undefined reference to `GetClipRect'
test.mod:(.text+0x1a5): undefined reference to `BlitSurface'
test.mod:(.text+0x1b2): undefined reference to `Flip'
test.mod:(.text+0x1be): undefined reference to `Delay'
test.mod:(.text+0x1cb): undefined reference to `FreeSurface'

the content of ../src/sk is

AudioBase.o  JoystickBase.o  SKVideo.def  TimeBase.def  VideoBase.def
CDROMBase.o  Shared.o        SKVideo.o    TimeBase.o    VideoBase.o

the missing functions are in TimeBase.o and VideoBase.o. Both created
from C sources.

Some code snipsets to explain the problem:

Here's SKVideo:

IMPLEMENTATION MODULE SKVideo;

IMPORT VideoBase;

BEGIN
     VideoBase.InitVideo();
FINALLY
     VideoBase.QuitVideo();
END SKVideo.

and here are the declarations of the missing functions in VideoBase.def

PROCEDURE InitVideo();

PROCEDURE QuitVideo();

And the definitions in VideoBase.c

void InitVideo(void)
{
  Init();
  SDL_InitSubSystem(SDL_INIT_VIDEO);
}

void QuitVideo(void)
{
  SDL_QuitSubSystem(SDL_INIT_VIDEO);
}

Everything is there. So why it doesn't find the definitions? I thought
-fmakeall is doing this form me?

Thanks,

-- 
Martin Kalbfuß <address@hidden>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]