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

amiga-news.de Forum > Programmierung > OS4 Progamm mit vbcc [ - Suche - Neue Beiträge - Registrieren - Login - ]

1 -2- 3 4 [ - Beitrag schreiben - ]

17.12.2007, 16:06 Uhr

TetiSoft
Posts: 197
Nutzer
Zitat:
Original von MaikG:
assign vincludeos4: vbcc:targets/ppc-amigaos/include
assign vincludeos4: vbcc:Includes


Das zweite Assign ersetzt das erste.
Documentation/C/Assign.doc

[ - Antworten - Zitieren - Direktlink - ]

17.12.2007, 17:03 Uhr

MaikG
Posts: 5172
Nutzer
>Das zweite Assign ersetzt das erste.

Richtig, wann hab ich dann das add gekillt?


Trotzdem gibts ein fehler:

#error Include <proto/> header files, not <clib/> header files in OS4.
error 292 in line 39 of "clib/exec_protos.h": #error Include <proto/> header files, not <clib/> header files in OS4.

[ Dieser Beitrag wurde von MaikG am 17.12.2007 um 17:15 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

17.12.2007, 22:53 Uhr

thomas
Posts: 7677
Nutzer

Er hat vollkommen recht. Tu einfach, was er sagt. Gilt übrigens nicht nur für OS4.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: thomas-rapp.homepage.t-online.de/

[ - Antworten - Zitieren - Direktlink - ]

17.12.2007, 23:32 Uhr

MaikG
Posts: 5172
Nutzer
>Er hat vollkommen recht. Tu einfach, was er sagt. Gilt übrigens
>nicht nur für OS4.

Ich verstehe aber nicht was der Compiler von mir will.
Wenn SASC was erzählt ist dies halbwegs einleuchtend, vbcc
kapiere ich nicht.


Da, hab proto verwendet, hab heute gelesen das ist
am Kompatibelsten und geht mit vbcc+gcc stand in irgendeiner
SDK - PDF Datei.


#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/cybergraphics.h>
#include <proto/diskfont.h>
//#include <cybergraphx/cybergraphics.h>
#include <stdio.h>


[ Dieser Beitrag wurde von MaikG am 17.12.2007 um 23:35 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 00:00 Uhr

_PAB_
Posts: 3016
Nutzer
@MaikG:
> wenns das nicht in viel kleiner gibt, ist es mir den Spass nicht wert.

Hast Du nicht irgendwo eine GoldED- oder CubicIDE-CD rumliegen ?
Ich meine, da war das OS4-SDK mit drauf (aber wahrscheinlich nicht das aktuellste?).

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 00:02 Uhr

MaikG
Posts: 5172
Nutzer
>Hast Du nicht irgendwo eine GoldED- oder CubicIDE-CD rumliegen ?
>Ich meine, da war das OS4-SDK mit drauf (aber wahrscheinlich nicht das aktuellste?).

Ich habs doch jetzt schon runtergeladen.
Nur geht trotzdem nix.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 06:52 Uhr

TetiSoft
Posts: 197
Nutzer
Zitat:
Original von MaikG:
>Er hat vollkommen recht. Tu einfach, was er sagt. Gilt übrigens
>nicht nur für OS4.

Ich verstehe aber nicht was der Compiler von mir will.

Der Compiler will gar nichts von Dir.
Ich will was von Dir, und damit Du es auf jeden Fall
liest hab ich den Includes gesagt sie sollen dem Compiler
sagen er soll Dir sagen Du sollst keine clib-Includes
mehr einbinden, schon gar nicht unter OS4...

Zitat:
Wenn SASC was erzählt ist dies halbwegs einleuchtend, vbcc
kapiere ich nicht.

Die Meldung ist wie gesagt nicht vom Compiler.

Zitat:
Da, hab proto verwendet, hab heute gelesen das ist
am Kompatibelsten und geht mit vbcc+gcc stand in irgendeiner
SDK - PDF Datei.

Yep, geht auch mit SAS/C und gcc/68k und wahrscheinlich mit
noch mehr.

Zitat:
#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <proto/graphics.h>
#include <proto/cybergraphics.h>
#include <proto/diskfont.h>
//#include <cybergraphx/cybergraphics.h>
#include <stdio.h>

Habe das SDK grad nicht da, tippe mal auf die CGFX-Includes,
die könnten entweder nicht mitgeliefert worden sein oder vielleicht
durften sie auch nicht in veränderter Form verteilt werden.

Wenn vbcc eine Option hat um nur den Preprozessor aufzurufen
(-E bei gcc) kannst Du im Output nach clib/exec_protos.h suchen,
oder such gleich in proto/cybergraphics.h und ändere es ggf ab,
oder schreib sowas wie "#define CLIB_EXEC_PROTOS_H 1" in den
Quellcode, oder stell um auf P96-API statt CGFX.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 10:35 Uhr

MaikG
Posts: 5172
Nutzer
>Der Compiler will gar nichts von Dir.
>Ich will was von Dir, und damit Du es auf jeden Fall
>liest hab ich den Includes gesagt sie sollen dem Compiler
>sagen er soll Dir sagen Du sollst keine clib-Includes
>mehr einbinden, schon gar nicht unter OS4...

Hab ich doch gar nicht.



//#include <cybergraphx/cybergraphics.h>

>Habe das SDK grad nicht da, tippe mal auf die CGFX-Includes,
>die könnten entweder nicht mitgeliefert worden sein oder vielleicht
>durften sie auch nicht in veränderter Form verteilt werden.

CGX ist dabei, nur das mit // ist nicht da.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 11:15 Uhr

Solar
Posts: 3674
Nutzer
Zitat:
Original von MaikG:
>Der Compiler will gar nichts von Dir.
>Ich will was von Dir, und damit Du es auf jeden Fall
>liest hab ich den Includes gesagt sie sollen dem Compiler
>sagen er soll Dir sagen Du sollst keine clib-Includes
>mehr einbinden, schon gar nicht unter OS4...

Hab ich doch gar nicht.


Doch, hast Du.

Zitat:
error 292 in line 39 of "clib/exec_protos.h": #error Include <proto/> header files, not <clib/> header files in OS4.

"clib/exec_protos.h" wird eingebunden, und erzeugt den beobachteten Fehler in Zeile 39.

Wie Du herausfindest, wer wo versucht, diesen Include zu machen, hat man Dir schon gesagt (-E).

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 11:30 Uhr

MaikG
Posts: 5172
Nutzer
Scheint mit cgx nichts zu tun zu haben:

#include <proto/dos.h>
#include <proto/exec.h>
#include <proto/timer.h>
#include <devices/timer.h>
#include <stdint.h>
#include <math.h>

das Programm machts auch.

-E bringt keine andere ausgabe als ohne.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 12:46 Uhr

Solar
Posts: 3674
Nutzer
Zitat:
Original von MaikG:

-E bringt keine andere ausgabe als ohne.


Sag mal, wirfst Du zwischen "Lesen" und "Schreiben" auch mal die Unterfunktion "Denken" an?

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 13:21 Uhr

MaikG
Posts: 5172
Nutzer
>Sag mal, wirfst Du zwischen "Lesen" und "Schreiben" auch mal die Unterfunktion "Denken" an?

Es ist doch bekannt das ich selten in C-Programmiere oder?

Ich hab alles gemacht, was ich verstanden habe was ich tun
soll.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 13:38 Uhr

Solar
Posts: 3674
Nutzer
Ja, das mit dem Verstehen ist so ein Problem manchmal. Was macht denn "-E"? Gibt es rein zufällig .i-Dateien im Arbeitsverzeichnis, die vorher nicht da waren?

(Ich habe nie mit vbcc gearbeitet, aber keine Minute gebraucht um das Handbuch und darin die passende Stelle zu finden...)

[ Dieser Beitrag wurde von Solar am 18.12.2007 um 13:38 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 13:39 Uhr

TetiSoft
Posts: 197
Nutzer
@MaikG:

Zu vbcc muß es ja auch eine Anletung geben,
ich vermute -E generiert statt Object-code C-Code
(also das was der Preprozessor davon übrig läßt).
In dem sollte sich hoffentlich finden lassen wo
die clib-Datei eingebunden wurde.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 13:50 Uhr

MaikG
Posts: 5172
Nutzer
ja, in der .i datei steht:


#line 63 "exec/types.h"
typedef void * APTR ;


[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 13:54 Uhr

Solar
Posts: 3674
Nutzer
Ich werd' weich, ehrlich. :angry:

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 15:48 Uhr

MaikG
Posts: 5172
Nutzer
>Ich werd' weich, ehrlich.

Tja, wenn du es nicht erklären willst/kannst musst du das
auch nicht tun. Zwingt dich ja keiner.

Ich hab vbcc für 68k und für wos, keine Version macht derartige
Zickereien.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 15:48 Uhr

Holger
Posts: 8090
Nutzer
Zitat:
Original von MaikG:
ja, in der .i datei steht:

#line 63 "exec/types.h"
typedef void * APTR ;


Bevor noch mehr Leute in die Tischkante beißen:
Du erinnerst Dich noch, dass Du nach clib/exec_protos.h suchen wolltest?

mfg

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

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 15:55 Uhr

Solar
Posts: 3674
Nutzer
Zitat:
Original von MaikG:

Tja, wenn du es nicht erklären willst/kannst musst du das
auch nicht tun. Zwingt dich ja keiner.


Das Problem liegt weniger bei dem halben Dutzend Sendern hier, sondern bei dem einen Empfänger, deucht mir.

Zitat:
Ich hab vbcc für 68k und für wos, keine Version macht derartige
Zickereien.


Nö, daß keine Version solche Zickereien macht wie nun ausgerechnet Deine, ist mir schon klar.

Ahem.

Wieso eigentlich "vbcc für 68k und WOS"? Wir reden hier doch vom ppc-amigaos Target mit OS4-SDK, oder?


[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 15:58 Uhr

MaikG
Posts: 5172
Nutzer
>Du erinnerst Dich noch, dass Du nach clib/exec_protos.h suchen wolltest?


steht nicht in der Datei, aber in:

include/proto/exec.h

#ifndef CLIB_EXEC_PROTOS_H
#include <clib/exec_protos.h>

und in targets/ppc-amigaos/include/proto/exec.h


#if !defined(CLIB_EXEC_PROTOS_H) && !defined(__GNUC__)
#include <clib/exec_protos.h>
#endif


und da:

includes/clib/all_protos.h

#include <clib/exec_protos.h>

[ Dieser Beitrag wurde von MaikG am 18.12.2007 um 15:59 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 16:05 Uhr

Solar
Posts: 3674
Nutzer
Zitat:
Original von MaikG:

#ifndef CLIB_EXEC_PROTOS_H
#include <clib/exec_protos.h>


...und mit einem lauwarmen IQ käme man jetzt evtl. zurück auf das Posting von TetiSoft von 06:52, in dem da steht:

Zitat:
Wenn vbcc eine Option hat um nur den Preprozessor aufzurufen
(-E bei gcc) kannst Du im Output nach clib/exec_protos.h suchen,
oder such gleich in proto/cybergraphics.h und ändere es ggf ab,
oder schreib sowas wie "#define CLIB_EXEC_PROTOS_H 1" in den
Quellcode
, oder stell um auf P96-API statt CGFX.


Das nennt sich "Transferleistung".

[ Dieser Beitrag wurde von Solar am 18.12.2007 um 16:05 Uhr geändert. ]

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 16:31 Uhr

MaikG
Posts: 5172
Nutzer
>Das nennt sich "Transferleistung".

Das hab ich doch schon in meinem Quellcode reingeschrieben
muss ich das bei den Includes auch noch machen?

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 16:47 Uhr

Holger
Posts: 8090
Nutzer
Zitat:
Original von MaikG:
Das hab ich doch schon in meinem Quellcode reingeschrieben


Steht das auch vor den Include-Anweisungen?

mfg


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

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 17:40 Uhr

MaikG
Posts: 5172
Nutzer
>Steht das auch vor den Include-Anweisungen?

Ja.
Ich hab das jetzt für alle Librarys gemacht.

Jetzt fängt der so an wie mit den OS3.9 Includes und erzählt
was von "implicid declaration" und das bei jeder Systemfunktion...
Also bin ich wieder am Anfang.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 18:07 Uhr

ZeroG
Posts: 1486
Nutzer
@MaikG:
Wenn "implicid declaration" bei jeder aufgerufenen Systemfunktion kommt, hast du entweder die Header nicht drinnen, oder du hast vergessen das es unter OS4 die Libraryfunktionen über den Interfacepointer angesprochen werden.

Wenn du nichts mit "Interfacepointer" anfangen kannst lese endlich mal den os4_migration_guide.pdf anstatt in zu überfliegen, da ist genau beschrieben wie das funktioniert, inklusive der möglichkeit für Schreibfaule und Projekte die noch ohne änderungen für 3.x zu compilieren sein sollen.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 19:40 Uhr

MaikG
Posts: 5172
Nutzer
>Wenn "implicid declaration" bei jeder aufgerufenen Systemfunktion
>kommt, hast du entweder die Header nicht drinnen,

doch, geht sowohl für 68k als auch für wos zum compilieren.

>oder du hast vergessen das es unter OS4 die Libraryfunktionen über
>den Interfacepointer angesprochen werden.

Was? Ich muss mein Programm ändern um es für OS4 zu Compilieren?
Wie war das von wegen C und Portierbarkeit?

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 20:37 Uhr

TetiSoft
Posts: 197
Nutzer
Zitat:
Original von MaikG:
Was? Ich muss mein Programm ändern um es für OS4 zu Compilieren?
Wie war das von wegen C und Portierbarkeit?


Portierbares C (printf usw) macht doch gar keine Probleme :-)

Lesen bildet. Dir wurde in dem Posting auf das Du geantwortet hast
zu verstehen gegeben wo Du nachlesen kannst was "schreibfaule" machen
müssen um einen OS3-Quellcode in einen OS3/OS4 Quellcode umzuwandeln.
Du mußt tatsächlich eine Zeile zu Deinem Quellcode hinzufügen,
oder stattdessen ein Argument zum Compiler-Aufruf im makefile.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 20:37 Uhr

Solar
Posts: 3674
Nutzer
Wer dafür ist, MaikG den Programmiererführerschein zu entziehen, bitte jetzt die Hand heben...

*heb*

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 21:08 Uhr

MaikG
Posts: 5172
Nutzer
>Lesen bildet. Dir wurde in dem Posting auf das Du geantwortet hast
>zu verstehen gegeben wo Du nachlesen kannst was "schreibfaule" machen
>müssen um einen OS3-Quellcode in einen OS3/OS4 Quellcode umzuwandeln.

:-P Hab ich doch, nur ist die Anleitung nicht für Anfänger.

__USE_INLINE__

Hab ich in den Source gesetzt, bringt nix.
Habs auch in die Commandozeile gesetzt - bringt nix.

[ - Antworten - Zitieren - Direktlink - ]

18.12.2007, 21:37 Uhr

TetiSoft
Posts: 197
Nutzer
Zitat:
Original von MaikG:
__USE_INLINE__

Hab ich in den Source gesetzt, bringt nix.
Habs auch in die Commandozeile gesetzt - bringt nix.


Dann ist wohl irgendwie die Reihenfolge der Includes im Assign
falsch oder es liegen alte Includes an der falschen Stelle oder
sowas in der Art. Ich nehme vbcc normal nicht und kenne die Details
nicht auswendig, ein simples

#define __USE_INLINE__
#include <proto/exec.h>

müßte sich aber als Test eignen um mit -E oder auch mit Einfügen
von #error Zeilen in diejenigen Includes die man glaubt(!) zu benutzen
rauszufinden warum letztlich <inline4/exec.h> tatsächlich nicht
geladen wird, das proto-file müßte das eigentlich einbinden wenn
obiges #define vorhanden ist.

[ - Antworten - Zitieren - Direktlink - ]


1 -2- 3 4 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > OS4 Progamm mit vbcc [ - Suche - Neue Beiträge - Registrieren - Login - ]


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