amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Gcc (Include path) [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2002-08-01, 12:53 h

DariusBrewka
Posts: 899
[Banned user]
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

[ - Answer - Quote - Direct link - ]

2002-08-02, 13:23 h

Holger
Posts: 8116
User
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.

[ - Answer - Quote - Direct link - ]

2002-08-02, 14:12 h

Georg
Posts: 107
User
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

[ - Answer - Quote - Direct link - ]

2002-08-02, 14:29 h

DariusBrewka
Posts: 899
[Banned user]
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


[ - Answer - Quote - Direct link - ]

2002-08-02, 18:41 h

Holger
Posts: 8116
User
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.

[ - Answer - Quote - Direct link - ]

2002-08-03, 01:30 h

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

gruss

Darius

[ - Answer - Quote - Direct link - ]

2002-08-06, 15:45 h

gni
Posts: 1106
User
@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);
}
}

[ - Answer - Quote - Direct link - ]

2002-08-06, 15:47 h

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

Genau *das* macht man *nicht*

[ - Answer - Quote - Direct link - ]

2002-08-06, 17:38 h

DariusBrewka
Posts: 899
[Banned user]
@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.

[ - Answer - Quote - Direct link - ]

2002-08-07, 10:43 h

gni
Posts: 1106
User
@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;

[ - Answer - Quote - Direct link - ]

2002-08-07, 13:42 h

DariusBrewka
Posts: 899
[Banned user]
@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.

[ - Answer - Quote - Direct link - ]

2002-08-07, 14:15 h

gni
Posts: 1106
User
@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. ]

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Gcc (Include path) [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.