amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Gcc (Include path) [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

01.08.2002, 12:53 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
Hallo an Alle,
bisher habe ich den vbcc Compiler benutzt, aber aufgrund von einigen Fehlern (wohlmöhlich nur bei mir), und aus gründen der "Zuckunftssicherheit" wollte ich mein Programm an den gcc anpassen.

Zuerst habe ich gcc2.70 instlliert, es ging auch "gut", nur konnte ich nicht ohne C(++) Kommentare leben und alle Header dateien umzuschreiben war auch nicht mein wunsch.

Folglich habe ich gcc2.95 (link irgendwo unter news hier), nur bekomme ich hier nicht hin einen Suchpfad für die Include Dateien anzugeben, damit meine ich jetzt nicht die "-I" option, sondern den
Standardpfad, sodass ich auch andere Sources durch einfaches "make" compilieren kann, ohne die Makefiles erst anzupassen und überall "-i=xyz" zu schreiben.

In den Anleitungen konnte ich absolut nichts finden.

gruss

Darius

[ - Antworten - Zitieren - Direktlink - ]

02.08.2002, 13:23 Uhr

Holger
Posts: 8116
Nutzer
Welche includes findet der Compiler denn nicht? Wenn Du system-includes meinst, liegt das Problem bei Deiner Installation, bei projektbezogenen header-files müssen sie halt ins Makefile. Das zwei völlig verschiedene Dinge.

mfg

--

Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

02.08.2002, 14:12 Uhr

Georg
Posts: 107
Nutzer
Du könntest versuchen im GCC "specs" File etwas rumzubasteln.
Dieses File findest du bei dir wahrscheinlich unter

gg:lib/gcc-lib/m68k-amigaos/2.95.3/specs

Sonst halt mit search suchen.

Dann in nen Text Editor laden und dort die "*cpp:"
Zeile suchen. An die Zeile darunter dann z. B.

-Ideinincludeverzeichnis

am Ende anhängen.

ciao,

Georg

[ - Antworten - Zitieren - Direktlink - ]

02.08.2002, 14:29 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
Danke, es lag an der Installation.

Wie gesagt habe ich mit dem Gcc noch nie gearbeitet und ich hätte nicht gedacht dass man bei der Installation eines 20MB Compilers noch 1000 andere archive runterladen muss.

Vieleicht noch etwas, wenn ich ein simples programm z.B. helloworld. compiliere, so läuft es wie es soll, wenn ich das flag -noixemul definiere. Wenn ich aber meines, was unter vbcc ohne probleme läuft, so kommt unter gcc (gcc -ixemul ....) ein requester der das fehlen der "rexxsyslib.library" v37 bemängelt.

Ich habe keine V37 und ich habe in meinem code auch kein requester der das anzeigen könnte.

Ich dachte, dass ich das per int initlibraries = 0; abstellen könnte, aber dann schmiert alles ab, auch wenn ich main() ganz leer lasse.

danke


[ - Antworten - Zitieren - Direktlink - ]

02.08.2002, 18:41 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von DariusBrewka:
Vieleicht noch etwas, wenn ich ein simples programm z.B. helloworld. compiliere, so läuft es wie es soll, wenn ich das flag -noixemul definiere. Wenn ich aber meines, was unter vbcc ohne probleme läuft, so kommt unter gcc (gcc -ixemul ....) ein requester der das fehlen der "rexxsyslib.library" v37 bemängelt.

Was denn nun, -noixemul oder -ixemul? Wenn Du mit ixemul übersetzt, öffnet Dein Programm die ixemul.library, die versucht die bsdsocket.library zu öffnen, was dann passiert, hängt von Deinem TCP/IP-Stack ab... Vielleicht liegts ja daran.

mfg

--

Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

03.08.2002, 01:30 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
die option hiess natürlich -noixemul, -ixemul gibt's doch gar nicht.

gruss

Darius

[ - Antworten - Zitieren - Direktlink - ]

06.08.2002, 15:45 Uhr

gni
Posts: 1106
Nutzer
@DariusBrewka:
>Vieleicht noch etwas, wenn ich ein simples programm z.B. helloworld. >compiliere, so läuft es wie es soll, wenn ich das flag -noixemul >definiere. Wenn ich aber meines, was unter vbcc ohne probleme läuft, >so kommt unter gcc (gcc -ixemul ....) ein requester der das fehlen >der "rexxsyslib.library" v37 bemängelt.

Das auto-open Feature von libnix (-noixemul) verwendet 37 als Version für zu öffnende Bibliotheken.

>Ich habe keine V37 und ich habe in meinem code auch kein requester >der das anzeigen könnte.

Es gibt auch keine v37. Der Requester kommt aus einer Linkerlibrary.

>Ich dachte, dass ich das per int initlibraries = 0; abstellen könnte, >aber dann schmiert alles ab, auch wenn ich main() ganz leer lasse.

Das sollte eigentlich nicht passieren... Muß ich doch mal ausprobieren.

BTW, initlibraries ist auch der falsche Knopf ;-) Versuchs mal mit

ULONG __oslibversion = 36; // oder 0

Das hat aber den Nachteil, das dann generell nur die Version 36 verlangt wird.
Alternativ kannst Du ja auch nur die rexxsyslib.library selber öffnen. Das geht so:

#include <proto/exec.h>
#include <proto/rexxsyslib.h>

struct RxsLib *RexxSysBase = NULL; // =NULL ist wichtig wenn global!

main()
{ // oder per lokaler Basis, wenn RexxSysBase nicht extern verwendet // wird
// APTR RexxSysBase;
if ((RexxSysBase=OpenLibary(RXSNAME, 36))!=NULL){
CloseLibrary(RexxSysBase);
}
}

[ - Antworten - Zitieren - Direktlink - ]

06.08.2002, 15:47 Uhr

gni
Posts: 1106
Nutzer
@Georg:
>Du könntest versuchen im GCC "specs" File etwas rumzubasteln.

Genau *das* macht man *nicht*

[ - Antworten - Zitieren - Direktlink - ]

06.08.2002, 17:38 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
@gni

genau das mache ich auch, da ich die rexxsyslib.library brauche, aber ich habe die Version 36 und darum habe ich auch das mit der "oslibversion = 36" methode gemacht.
Ich will die Bibliotheken selber öffnen, ich brauche den Argument Parser von libnix nicht!, da mein Programm nicht aus der Shell startbar ist.

[ - Antworten - Zitieren - Direktlink - ]

07.08.2002, 10:43 Uhr

gni
Posts: 1106
Nutzer
@DariusBrewka:
> da ich die rexxsyslib.library brauche, aber ich habe die Version 36
Eine neuere gibt es auch *nicht*

>Ich will die Bibliotheken selber öffnen,
Deswegen hast Du initlibraries abgeklemmt? Das sollte man nur tun,
wenn man nichts (wichtiges) aus den Linkerbibliotheken benutzt.

>ich brauche den Argument Parser von libnix nicht
int __nocommandline = 1;

[ - Antworten - Zitieren - Direktlink - ]

07.08.2002, 13:42 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
@gni

komisch dass dann libnix die rexxsyslib.library V37 öffnen will :-(,

das mit nocommandline=1 habe ich gemacht, und trotzdem braucht er dann die rexxsyslib, obwohl in der guide steht dass diese für's parsen gebraucht wird.

[ - Antworten - Zitieren - Direktlink - ]

07.08.2002, 14:15 Uhr

gni
Posts: 1106
Nutzer
@DariusBrewka:
>komisch dass dann libnix die rexxsyslib.library V37 öffnen will :-(,
Nicht komisch. Das liegt an der Art und Weise, wie Auto-Opening von
libnix funktioniert. Es gibt nur eine Versionsnummer die zum öffnen
aller Bibliotheken verwendet wird. Dieser Vorgabewert ist halt 37. Das funktioniert hlat nicht für alle Bibliotheken. Aber die kann man ja bei Bedarf bequem mit der richtigen Version per Hand öffnen.

>das mit nocommandline=1 habe ich gemacht, und trotzdem braucht er >dann die rexxsyslib, obwohl in der guide steht dass diese für's >parsen gebraucht wird.
Auf keinen Fall. Im Guide von libnix wird die rexxsyslib gar nicht erwähnt. Wenn das fertige Programm versucht die rexxsyslib zu öffnen, dann werden Funktionen der Bibliothek auf irgendeine Weise von Deinem Programm referenziert. Das hat aber absolut nichts mit libnix zu tun.

[ Dieser Beitrag wurde von gni am 07.08.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Gcc (Include path) [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.