[#1]
GCC nie kompiluje ReqTools
Witam!
Mam problem ze skompilowaniem prostej źródłówki w C dotyczącej obsługi ReqTools. Ściągnąłem z Aminetu ReqToolsDev i skopiowalem wszystkie potrzebne includy tam gdzie trzeba. Mimo tego wciaz dostaje serie komunikatow w stylu:
/t/ccwKaG1c.o(.text+0x11e): undefined reference to 'rtAllocRequestA'
... kompiluje za pomoca GCC z nastepujacymi parametrami:
# gcc -s -fbaserel -noixemul -o dh0:plik_wyjsciowy.exe dh0:plik_wejsciowy.c
... oto źródłówka:
#include
#include
#include
#include
#include
#include
#include
#include
struct ReqToolsBase *ReqToolsBase;
STRPTR DuplicateStr(STRPTR Lancuch);
STRPTR JoinName(STRPTR Sciezka, STRPTR Plik);
main()
{
struct rtFileRequester *FileReq;
STRPTR Nazwa;
char Plik[108]="Program.config";
ReqToolsBase=(struct ReqToolsBase *)OpenLibrary("reqtools.library",38);
if (ReqToolsBase==NULL)
{
puts("Nie moge otworzyc reqtools.library w wersji 38+");
exit(20);
}
if (FileReq=(struct rtFileRequester *)rtAllocRequestA(RT_FILEREQ,NULL))
{
if(rtFileRequestA(FileReq,Plik,"Wybierz plik:",NULL))
{
if (Nazwa=JoinName(FileReq->Dir,Plik))
{
rtEZRequest("Wybrany plik: '%s'","Zamknij",NULL,NULL,Nazwa);
FreeVec(Nazwa);
}
}
else
rtEZRequestA("Nie wybrano pliku !","Zamknij",NULL,NULL,NULL);
rtFreeRequest(FileReq);
}
CloseLibrary((struct Library *)ReqToolsBase);
}
#define JN_ROZMIARBUFORA 256
STRPTR JoinName(STRPTR Sciezka, STRPTR Plik)
{
char Bufor[JN_ROZMIARBUFORA];
ULONG Dlugosc;
if ((Sciezka&&Plik)==NULL) return (NULL);
Dlugosc=strlen(Sciezka)+1;
if (Dlugosc>JN_ROZMIARBUFORA) return(NULL);
CopyMem(Sciezka,Bufor,Dlugosc);
if (AddPart(Bufor,Plik,JN_ROZMIARBUFORA-1))
return(DuplicateStr(Bufor));
return(NULL);
}
STRPTR DuplicateStr(STRPTR Lancuch)
{
STRPTR Nowy;
ULONG Dlugosc;
Dlugosc=strlen(Lancuch)+1;
Nowy=(STRPTR)AllocVec(Dlugosc,0L);
if (Nowy!=NULL)
strncpy(Nowy,Lancuch,Dlugosc);
return(Nowy);
}
-----------
bylbym wdzieczny za wszelkie sugestie
Pozdrawiam
MarX