Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

include funktioniert nicht wie gewollt

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MindWorm



Anmeldungsdatum: 11.12.2007
Beiträge: 6

BeitragVerfasst am: 11.12.2007, 10:37    Titel: include funktioniert nicht wie gewollt Antworten mit Zitat

Hallo,

Ich habe gestern FreeBASIC entdeckt und wollte es gleich mal testen. Ich benutze Xubuntu 7.10 und als Editor Scite. FreeBASIC und alle benötigten Pakete sind meines Wissens korrekt installiert und auch Scite ist soweit fertig für FreeBASIC eingerichtet (Syntax-Highlighting, F5=Compile+Run etc.).

Trotzdem scheitere ich an einer vergleichsweise einfachen Aufgabe wie dem Einfügen einer Datei mittels #include. Folgender Code lässt sich nicht kompilieren:
Code:

#include "/usr/share/freebasic/inc/fbgfx.bi"
screenres 640, 480, 32, 2, GFX_FULLSCREEN
sleep


Die Fehlermeldung(en):
Code:

>fbc test.bas && ./test
test.bas(4) error 41: Variable not declared, GFX_FULLSCREEN in 'screenres 640, 480, 32, 2, GFX_FULLSCREEN'
test.bas(4) warning 12(0): Implicit variable allocation, GFX_FULLSCREEN
>Exit code: 1


Die Datei fbgfx ist vorhanden (und auch genau im angegebenen Pfad). Leider kann ich nicht erkennen, was ich da falsch mache.

Natürlich kann ich das #include einfach weglassen und screenres 640, 480, 32, 2, &h01 schreiben, dann funktioniert's, aber in fbgfx.bi befinden sich ja noch weitere nützliche Konstanten, die ich schon gerne nutzen würde.


Bin dankbar für jede Hilfe.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stormy



Anmeldungsdatum: 10.09.2004
Beiträge: 567
Wohnort: Sachsen - wo die schönen Frauen wachsen ;)

BeitragVerfasst am: 11.12.2007, 11:19    Titel: Antworten mit Zitat

Probier mal:

Code:
#include "fbgfx.bi"



http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgInclude hat Folgendes geschrieben:
For relative paths, or where no path is given at all, the include file is search for in the following order:

Relative from the directory of the source file
Relative from the current working directory
Relative from addition directories specified with the -i command line option


Es macht mich dennoch etwas stutzig, denn dein angegebener absolute Pfad müsste genauso funktionieren.
_________________
+++ QB-City +++ Die virtuelle Stadt für jeden Freelancer - Join the community!
Projekte: QB-City,MysticWorld (RPG), 2D-OpenGL-Tutorial
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MindWorm



Anmeldungsdatum: 11.12.2007
Beiträge: 6

BeitragVerfasst am: 11.12.2007, 11:40    Titel: Antworten mit Zitat

Danke für die schnelle Antwort. lächeln

Leider auch mit relativem Pfad
Code:

#include "fbgfx.bi"

das gleiche Ergebnis.

Muss man evtl. dem Compiler mitteilen, dass Dateien über #include eingebunden werden sollen? Dann wäre mein Compile-Befehl in Scite falsch ( command.compile.*.bas=fbc $(FileNameExt) ). Kann ich mir aber eigentlich nicht vorstellen, da das bei anderen wohl so funktioniert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 11.12.2007, 12:08    Titel: Antworten mit Zitat

Hi,
in der fbgfx.bi werden diese Konstanten im 'namespace FB' definiert also:
Code:
#INCLUDE "fbgfx.bi"
SCREENRES 640, 480, 32, 2, FB.GFX_FULLSCREEN
SLEEP

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MindWorm



Anmeldungsdatum: 11.12.2007
Beiträge: 6

BeitragVerfasst am: 11.12.2007, 12:38    Titel: Antworten mit Zitat

Jaaa, es funktioniert, vielen Dank! lächeln

Darauf wäre ich so schnell nicht gekommen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 11.12.2007, 12:54    Titel: Antworten mit Zitat

Manchmal sind's die kleinen Fehler die selbst einem Profi zu schaffen machen happy
Auch ich musste beim lesen deines Beitrages stark überlegen, und bei Volta's Posting ist es mir wieder eingefallen lachen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 11.12.2007, 20:37    Titel: Antworten mit Zitat

statt überall das FB. für den namespace vorneranzuhängen, würde ich lieber in die erste zeile
Code:
USING FB

schreiben... lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MindWorm



Anmeldungsdatum: 11.12.2007
Beiträge: 6

BeitragVerfasst am: 12.12.2007, 11:02    Titel: Antworten mit Zitat

Auch ein sehr nützlicher Tipp, das mit dem using, mache ich jetzt so, thx lächeln

Btw. hab ich vorher mit BlitzBasic unter Windows kleine Spiele programmiert, der Wechsel zu FreeBASIC erweist sich als schwieriger als angenommen. In FreeBASIC sind einige Dinge doch 'ne ganze Ecke schwieriger zu bewerkstelligen. Aber ich bin ja lernwillig lächeln

Momentan scheitere ich an der Benutzung der FreeImage-lib. Unter Windows XP beklagt der Compiler die angeblich fehlende DLL, die sich aber sehr wohl im lib-Ordner befindet und für Linux hab ich bisher noch garkeine FreeImage-lib gefunden bzw. weiß auch garnicht, wo ich suchen soll. Forumsuche und Google haben mir da nicht wirklich geholfen missbilligen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 12.12.2007, 11:55    Titel: Antworten mit Zitat

Zitat:

Btw. hab ich vorher mit BlitzBasic unter Windows kleine Spiele programmiert,


blitz-basic ist doch sehr gut, warum machst du damit nicht weiter?
bei freebasic kommst du schon vom programmierstil in den c-bereich rein.
wird nicht so einfach und hat noch viele haken und ösen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 12.12.2007, 12:18    Titel: Antworten mit Zitat

MindWorm hat Folgendes geschrieben:
Momentan scheitere ich an der Benutzung der FreeImage-lib. Unter Windows XP beklagt der Compiler die angeblich fehlende DLL, die sich aber sehr wohl im lib-Ordner befindet und für Linux hab ich bisher noch garkeine FreeImage-lib gefunden bzw. weiß auch garnicht, wo ich suchen soll. Forumsuche und Google haben mir da nicht wirklich geholfen missbilligen


Im Lib-Ordner sind nur statische Links (oder wie das heißt) drin, du benötigst die eigentliche freeimage-dll aber noch, die du seperat auf der freeimage-webseite runterladen musst.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 12.12.2007, 15:47    Titel: Antworten mit Zitat

Libs, die statisch eingelinkt werden. Oder wie auch immer. happy

@atari:
Wenn du dauernd andere Sprachen für so toll befindest, warum gehst du dann nicht?
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 12.12.2007, 21:58    Titel: Antworten mit Zitat

Mao, warum fragst du das?happy
Du weißt doch genau, daß Mr. 1000-Nicks nur dort posten kann,
wo er noch nicht (endgültig) rausgeflogen ist..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MindWorm



Anmeldungsdatum: 11.12.2007
Beiträge: 6

BeitragVerfasst am: 13.12.2007, 09:01    Titel: Antworten mit Zitat

atari hat Folgendes geschrieben:

blitz-basic ist doch sehr gut, warum machst du damit nicht weiter?
bei freebasic kommst du schon vom programmierstil in den c-bereich rein.
wird nicht so einfach und hat noch viele haken und ösen.


BlitzBasic ist eine klasse Sprache, wenn man Spiele unter Windows programmieren will. Aber 1. möchte ich einen Schritt in Richtung Anwendungsprogrammierung gehen und 2. sollen meine Programme in Zukunft auch unter Linux laufen.

Da gibt es als Option noch BlitzMax mit MaxGUI-Modul, was aber weniger kostengünstig als FreeBASIC ist. zwinkern grinsen Außerdem scheint mir FreeBASIC bisher zwar schwieriger zu sein, dafür aber auch weniger Schranken aufzuweisen und damit vielleicht die etwas "ernstere" Sprache zu sein.

Zu meinem FreeImage-Problem: Unter Windows gelöst, unter Linux arbeite ich noch dran. Ich habe die FreeImage-Pakete über Synaptic installiert, der fbc merkt davon allerdings nichts. Was muss ich da noch machen, damit er die lib benutzen kann?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4699
Wohnort: ~/

BeitragVerfasst am: 13.12.2007, 10:15    Titel: Antworten mit Zitat

Hast du auch die dev-Pakete installiert? (heißen in der Regel paketname-dev)
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MindWorm



Anmeldungsdatum: 11.12.2007
Beiträge: 6

BeitragVerfasst am: 13.12.2007, 10:54    Titel: Antworten mit Zitat

Japp, hab ich. Evtl die falsche Version?

libfreeimage3 Ver. 3.9.3-3 und libfreeimage-dev Ver. 3.9.3-3
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 13.12.2007, 22:36    Titel: Antworten mit Zitat

Hi,
zu FreeImage unter Linux kann ich dir nicht helfen, nur ein Hinweis, der mir zu Freeimage und Win32 auffiel:
die Freeimage.bi war auf dem Stand von Freeimage 3.5.0,
alle Variablen die als 'single' darin deklariert waren wurden in Freeimage als 'double' erwartet.
Nach kleinen manuellen Änderungen an der bi lief es aber mit der Freeimage.dll(Version3.9.3).
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4699
Wohnort: ~/

BeitragVerfasst am: 13.12.2007, 23:11    Titel: Antworten mit Zitat

Ich hatte mal bei einer manuell installierten lib das Problem, dass im Dateinamen die Versionsnummer enthalten war, FreeBASIC aber die lib ohne Versionsnummer erwartete. Lässt sich durch Umbenennen bzw. das Erstellen eines Links lösen. Wenn du die lib allerdings über Synaptic installiert hast, vermute ich, dass dies nicht der Grund ist. neutral
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
atari
gesperrt


Anmeldungsdatum: 26.08.2007
Beiträge: 144

BeitragVerfasst am: 14.12.2007, 20:08    Titel: Antworten mit Zitat

da kann ich dir auch gfa32-basic (jetzt freeware) empfehlen. super, mit deutsche anleitung bis ins detail.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz