[#1] Niezadeklarowane referencje w OS4 - pomoc
Kiedy kompiluję dowolny program (nawet z katalogu examples SDK) pod OS4.0 wychodzi mnóstwo błędów postaci "Undefined Reference". Co jest nie tak - czy instalacja SDK jest błędna, czy niepoprawnie linkuję program? Załączam potrzebne .

[#2] Re: Niezadeklarowane referencje w OS4 - pomoc

@Minniat, post #1

Poprosimy o więcej szczegółów, bo szlag trafił łączność podprzestrzenną, i kryształowe kule straciły namiar satelitów.

[#3] Re: Niezadeklarowane referencje w OS4 - pomoc

@MinisterQ, post #2

Przykład:
#include 
#include 
#include 

// Nie wiem czy to potrzebne
extern struct Library *SysBase;
extern struct Library *DOSBase;

int main()
{
   if ((DOSBase = OpenLibrary("dos.library", 0)) != NULL)
   {
      Delay(100);
      CloseLibrary(DOSBase);
   }
   return(0);
}


Daje wymienione błędy.

[#4] Re: Niezadeklarowane referencje w OS4 - pomoc

@Minniat, post #3

Błędy są postaci "Undefined Reference to OpenLibrary, Delay" itd.

[#5] Re: Niezadeklarowane referencje w OS4 - pomoc

@Minniat, post #4

Dodaj do źródeł:

#ifdef __amigaos4__
#undef __USE_INLINE__
#define __USE_INLINE__
#endif

i/lub jako parametr w kompilatorze: -mcrt=clib2 -D__USE_INLINE__

Wynika to z tego że AmigaOS4 używa interfejsów poprzez które wywoływane są funkcje biblioteczne. W praktyce wygląda to tak, że musiałbyś pisać:

IExec->OpenLibrary(), IDos->Delay(), itp.
Z powyższym #define - nie musisz.

To po pierwsze. Po drugie pod OS4 nie wystarczy otworzyć bibliotekę, trzeba zainicjować jej interfejs. Dla przykładu dla biblioteki graphics:

struct GraphicsIFace *IGraphics;

IGraphics = (struct GraphicsIFace *)GetInterface((struct Library *)GfxBase,"main", 1, NULL);

Na starcie na 100% masz dostępny interfejs dla biblioteki exec. Prawdopodobnie są też tworzone dla innych bibliotek, które otwiera kompilator (pewnie dos, intuition, itp). Ale dla świętego spokoju lepiej zrobić to ręcznie.

[#6] Re: Niezadeklarowane referencje w OS4 - pomoc

@MinisterQ, post #5

Bardzo dziękuję.

[#7] Re: Niezadeklarowane referencje w OS4 - pomoc

@MinisterQ, post #5

Wszystko działa jak należy. Napisałem swój pierwszy działający program w OS4.0. Dzięki za pomoc!

Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem