Welcome, Guest. Please login or register.

Author Topic: Probably a very simple development question...  (Read 4359 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Matt_HTopic starter

Probably a very simple development question...
« on: October 28, 2008, 04:17:32 AM »
Partially an exercise in teaching myself about (re)compiling and the GCC environment, I'm trying to fix a very simple bug in the Amiga port of Duke Nukem. Obviously, I've hit a snag.

After all the object code compiles and the compiler moves on to creating the executable, I get this error:
Code: [Select]
Engine/amiga_display.o(.text+0xb0e): undefined reference to `GetCyberIDAttr'
Engine/amiga_display.o(.text+0x3c4): undefined reference to `BestCModeIDTags'
Engine/amiga_display.o(.text+0x47a): undefined reference to `GetCyberIDAttr'
Engine/amiga_display.o(.text+0xaf8): undefined reference to `IsCyberModeID'
Engine/amiga_display.o(.text+0xf06): undefined reference to `LockBitMapTags'
Engine/amiga_display.o(.text+0xf46): undefined reference to `UnLockBitMap'
collect2: ld returned 1 exit status
make: *** [AmigaDuke3D_C] Error 1

Those all seem to be functions from cybergraphics.library. I'm sure the solution is something incredibly basic, but I don't (yet) know enough to figure it out.

The code should supposedly compile out of the box, but it doesn't, so I'm assuming the problem is with my development environment. The only "weird" thing I've done is used an included makefile that works only from C code, rather than the mix of C and Assembler - I'm having a hard enough time with C alone, so I don't want to deal with them both.

I'm using a basic (read: extracted everything and ran the GG-Startup script at boot) Geek Gadgets install from the ~1998 snapshot at Back2Roots with the gcc-2.95.3-4 from the FTP's alpha directory tacked on.

The os-includes were copied over from my Geek Gadgets 2 CD. I also installed the CGX and AHI devkits in gg:include.

Any hints greatly appreciated.
 

Offline Matt_HTopic starter

Re: Probably a very simple development question...
« Reply #1 on: October 28, 2008, 03:42:11 PM »
@ Crumb

Yes! The GCC-adapted includes were the solution. Thanks.

I guess this explains why the Geek Gadgets documentation said that if you use includes that aren't from the Geek Gadgets CD that they need to have patches applied.

I was wondering if you could explain a little bit more on the conceptual level. What are FD files? I've seen them in devkits before, but they don't come installed with Geek Gadgets, SAS/C, or StormC v3. Is there a compiler that uses them, or is their only purpose to be converted into pragma files?

Similarly, the AWeb includes had both "pragma" and "pragmas" subdirectories. What's the difference? GG and SAS both have only a pragmas subdirectory, but StormC has both. Is this also a compiler-specific thing?

Thanks again.
 

Offline Matt_HTopic starter

Re: Probably a very simple development question...
« Reply #2 on: October 28, 2008, 07:01:57 PM »
So is it correct to say that FDs are a kind of "raw" data that get processed into protos/pragmas/inlines/etc? I.E., if I have the FD files but nothing else, I can get everything else from them (apart from the main includes, obviously)?