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:

Compileraufruf - Problem

 
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
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 21.03.2010, 00:56    Titel: Compileraufruf - Problem Antworten mit Zitat

Hi!
Ich habe ein kleines Problem beim Compileraufruf und habe keine Ahnung was falsch sein könnte.

Folgende einfache Datei:
Code:
#include  once  "gtk/gtk.bi"
gtk_init (0, 0)

dim as GtkWidget ptr win = gtk_window_new (GTK_WINDOW_TOPLEVEL)

gtk_widget_show (win)

gtk_main()


Wenn ich die Datei einfach nur kompiliere klappt alles, aber jetzt hab ich mehrere Dateien in meinem Testprojekt. Damit ich nicht jedesmal jede Datei kompilieren muss kompiliere ich sie erst zu .o Dateien und linke diese dann. Wenn eine Datei geändert wird wird diese wieder kompiliert und mit den anderen .o Dateien gelinkt. Der Sinn davon ist Zeit zu sparen.

Zum kompilieren rufe ich den Compiler so auf:
Code:
"C:\Program Files (x86)\FreeBASIC\fbc.exe"  "C:/Users/Thomas/Documents/testordner/main.bas" -o "C:/Users/Thomas/Documents/testordner/main.o" -C


Zum Linken so:
Code:
"C:\Program Files (x86)\FreeBASIC\fbc2.exe"   C:/Users/Thomas/Documents/testordner/main.o


Jetzt bekomme ich Linkfehler für alle GTK Symbole. Wie macht man das was ich möchte richtig?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 21.03.2010, 04:05    Titel: Antworten mit Zitat

Du musst vermutlich dem linker mitteilen, dass er gtk dazulinken soll.
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stueber



Anmeldungsdatum: 07.07.2008
Beiträge: 202

BeitragVerfasst am: 21.03.2010, 11:31    Titel: Antworten mit Zitat

Das dachte ich auch, aber warum klappt dann:
Code:
"C:\Program Files (x86)\FreeBASIC\fbc.exe"  "C:/Users/Thomas/Documents/testordner/main.bas"

So teile ich dem Linker auch nichts mit und es funktioniert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 22.03.2010, 00:17    Titel: Antworten mit Zitat

Stimmt, du teilst dem linker nichts mit, aber fbc macht es in diesem Fall. Kannst ja mal "/bin/win32/ld.exe" durch ein Programm ersetzen, das ausgiebt, welche Parameter übergeben wurden, dann siehst du es.

/edit: hab das mal bei mir gemacht mit einem gtk-Testprogramm, da kam folgendes raus:
Zitat:
-T C:\Programmieren\FreeBASIC 0.21\lib\win32\i386pe.x -subsystem console -s --stack 1048576,1048576 -L C:\Programmieren\FreeBASIC 0.21\lib\win32 -L ./ C:\Programmieren\FreeBASIC 0.21\lib\win32\crt2.o C:\Programmieren\FreeBASIC 0.21\lib\win32\crtbegin.o buttonbox.o -o buttonbox.exe -( -lgtk-win32-2.0 -lgdk-win32-2.0 -lglib-2.0 -lpango-1.0 -lpangowin32-1.0 -lgobject-2.0 -lgdk_pixbuf-2.0 -lgmodule-2.0 -latk-1.0 -lfb -lgcc -lmsvcrt -lkernel32 -lmingw32 -lmingwex -lmoldname -lsupc++ C:\Programmieren\FreeBASIC 0.21\lib\win32\fbrt0.o -) C:\Programmieren\FreeBASIC 0.21\lib\win32\crtend.o

Also eine ganze Menge libs, die der Linker dazulinken muss, sonst bekommst du eben den Fehler mit den undefinierten Referenzen. Du hast dann ja die declares im Header, aber eben keinen Code dazu.

Da du das ganze oben in kompilieren und linken auftrennst, müsstest du die ganzen libs nochmal angeben. Der Linker weis ja nicht, welche du brauchst. Wenn du fbc beides auf einmal machen lässt, kann er dem Linker dank "#inclib" mitteilen, welche libs dazugelinkt werden müssen.
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 22.03.2010, 10:51    Titel: Antworten mit Zitat

-v hätte es auch getan zwinkern
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