Problem mit Borland C++ Compiler 5.5
-
Hallo zusammen,
laut meines Buches soll dann aber auch mein progrmam ausgeführt werden, da ja auch linker etc. aufgerufen wurden!!!Wer kann mir weiterhelfen?
lg, freakC++
-
Wenn alles o.k. ist hast Du das ausführbare Programm moin.exe. Mutte nur noch starten!
-
in dem Verzeichnis, wo der Quelltext liegt, wird auch eine Exe-Datei (und noch so anderer Kram) angelegt, doch wenn ich doppelt auf die exe klicke, dann öffnet sich für einen bruchteil einer sekunde die konsole und das wars.
Ich würde einfach nur gerne in der konsole mein Programm sehen. Doch ich sehe einfach den Fehler nicht...
KÖnnt ihr mir weiterhelfen?
Vielen Dank
lg, freakC++
-
Das Programm hat auch keinen Fehler. Starte die EXE mal in einem Konsolenfenster.
-
+gjm+ schrieb:
Das Programm hat auch keinen Fehler.
Doch, aber das wird vermutlich dennoch keinen Unterschied machen.
// Kein echtes C++ #include <iostream.h> // Kein C++ Header (Seit 1998) void main(void) // void main() gab es in C++ noch nie. => int main() { // Zudem ist (void) unüblich, aber nicht falsch cout << "Hallo Freunde"; // cout liegt nach dem Standard im Namensraum std } // C++ #include <iostream> int main() { std::cout << "Hallo Freunde"; }
cu André
-
Hallo zusammen,
ich habe den Quelltext direkt aus meinem Buch übernommen. Aber auch mit der Korrektur von asc, passiert das gleiche. Es erscheint keine Fehlermeldung, sondern nur die Zeilen:Borland C++ 5.6 für Win32 Copyright <c> 1993, 2002 Borland
moin.cpp:
Turbo Incremental Link 5.60 Copyright (c) 1977-2002 Borland
//Hier sollte eigentlich "Hallo Freunde" stehen!
C:\>Kann es vielleicht sein, dass es irgendwelche Komplikation gibt, weil ich auch noch den Builder installiert habe??
Oder weiß jemand, wie ich mein Programm sichtbar mache, denn, wie schon gesagt, .exe, .obj und .tds werden angelegt.
Mir ist aufgefallen, dass wenn ich einfach "bcc32 moin.cpp" schreibe, das gleiche erscheine. Obwohl ich nicht den Pfad der include-Dateien und deren Objektdateien angegeben habe, erscheint genau das gleiche, wenn ich sie angebe!!! Kann das sein?Vielen Dank für eure Hilfe
lg, freakC++
-
freakC++ schrieb:
Mir ist aufgefallen, dass wenn ich einfach "bcc32 moin.cpp" schreibe, ...
Schreib nur "moin" ! Warum und wieso steht hier schon ein paar mal.
-
freakC++ schrieb:
Mir ist aufgefallen, dass wenn ich einfach "bcc32 moin.cpp" schreibe, das gleiche erscheine. Obwohl ich nicht den Pfad der include-Dateien und deren Objektdateien angegeben habe, erscheint genau das gleiche, wenn ich sie angebe!!! Kann das sein?
1. Öffne ein Konsolenfenster
2. Wechsel im Konsolenfenster in das entsprechende Verzeichnis mit der exe
3. Gebe moin ein und bestätige dies mit ReturnAnsonsten:
a) Wechsel auf eine IDE, die für dich leichter Bedienbar ist
b) Schaue in der DOS/Konsolen-FAQ einen der ersten Posts ancu André
P.S: Und was auch ganz gut wäre: Werfe das Buch weg, und besorge dir ein aktuelles. Seit dem C++ Standard von 1998 (und was "void main" angeht noch nicht mal davor - Dies war niemals gültiges C++, auch wenn es von den Compilern in der Regel akzeptiert wurde) ist dieses Buch veraltet.
Beispielsweise: Thinking in C++ oder einen aktuellen "C++ Primer" (glaube 4te Auflage ist die Neuste)...
-
Hast du wie in der free-bcc5.5-Hilfe beschrieben die
bcc32.cfg und die
ilink32.cfg erstellt?du hast deinen Quellcode ja "moin.cpp" genannt
Suche mit der Windowssuche nach "moin.*"
Denn je nachdem wie der bcc32 eingestellt ist, schreibt er die Dateien, die
er erstellt ins Verzeichnis mit dem Quellcode oder in sein eigenes bin-Verzeichnis.
Wenn du den bcc entsprechend ansteuerst, kann der auch die Dateien noch
woanders hinschreibenSchreib mal ob du fündig geworden bist
Auf den Punkt gebracht, der free-Bcc5.5 kommt mit den meisten der hier
geposteten C++ Sourcen klar - ihr müsst den nur richtig ansteuern.MfG f.-th.
-
Hättest du den Thread gelesen, so wäre dir ersichtlich, daß der Threadersteller daran scheitert, sein Programm, das der Compiler fehlerfrei übersetzt und ins erwartete Verzeichnis ausgegeben hat, korrekt zu starten.
-
Hallo,
ich habe wie asc empfohlen hat, die exe Datei im Konsolenfenster ausgeführt. Das funktioniert auch. Also, wenn ich die exe Datei ausführe, dann erscheint im Konsolenfenster "Hallo Freunde". Doch es besteht weiterhin das Problem, dass nach dem erfolgreichen Compilieren und Linken das programm nicht in der konsole erscheint.@f.-th. Die Dateien werden schon ins richtige Verzeichnis geschrieben und auch exe, obj und tds werden erfolgreich erstellt...daran liegt das Problem nicht.
Vielen Dank für eure Hilfe
lg, freakC++
-
freakC++ schrieb:
Doch es besteht weiterhin das Problem, dass nach dem erfolgreichen Compilieren und Linken das programm nicht in der konsole erscheint.
audacia schrieb:
Der Compiler kompiliert dein Programm, er startet es nicht.
-
Hallo,
das ist mir schon klar, doch dann ist entweder ein Fehler im Buch (denn so wie meine Schritte geschildert habe, sollte nach den Zeilen bcc32 -IC:\...das Programm auch in der KOnsole ausgeführt werden oder ich bin einfach zu blöd. Dennoch zweifel ich (noch) nicht an mir, da ja keinerlei Fehler kommen.Wenn ich beispielweise den Builder betrachte. WEnn ich auf F9 klicke wird auch kompiliert, gelinkt etc und das Programm wird ausgeführt (ok, dies ist wahrscheinlich ein schlechtes BeispieL)....oder ist es so, dass ich mein Programm immer nur über die exe ausführen kann?
VIelen Dank
lg, freakC++
-
freakC++ schrieb:
doch dann ist entweder ein Fehler im Buch (denn so wie meine Schritte geschildert habe, sollte nach den Zeilen bcc32 -IC:\...das Programm auch in der KOnsole ausgeführt werden
Nein! Es ist nicht Aufgabe des Compilers, dein Programm auszuführen.
freakC++ schrieb:
Wenn ich beispielweise den Builder betrachte. WEnn ich auf F9 klicke wird auch kompiliert, gelinkt etc und das Programm wird ausgeführt
F9 ist wahrscheinlich der Shortcut zum Ausführen. Kompiliert und gelinkt wird hier nur, weil eben sonst nicht ausgeführt werden kann.
freakC++ schrieb:
oder ist es so, dass ich mein Programm immer nur über die exe ausführen kann?
So sieht's aus.
-
freakC++ schrieb:
...
Vielleicht solltest du bei einer IDE bleiben...
-
Hallo zusammen,
vielen Dank für eure Hilfe. Ich sollte es damit verstanden haben (auch wenn mit die Funktion des Compiler, Linkers etc. schon vorher klar war). Es war einfach total schlecht in meinem Buch ausgedrückt, denn was ich hier geschrieben habe, habe ich einfach daraus übernommen.Ich vorerst nicht bei einer IDE bleiben, da mir einfach noch C++ Grundlagen fehlen und ich (so wurde es mir schon häufiger geraten) diese mir erstmal aneignen sollte.
ASC hat mir geraten, dass Buch nicht zu benutuen, weil es beispielsweise mit "void main (void)" arbeitet. Doch ist dies aktuell, da auf der ersten Seite steht, dass es aus dem Jahr 2008 stamme. Das Buch stammt aus der Reihe "Das Einsteigerseminar". Hier ein Link:
http://www.amazon.de/C-Objektorientierte-Programmierung-Alexander-Niemann/dp/3826673743
Beim der zweiten Kundenrezision frage ich mich, ob derjenige das gleiche Problem wie ich hatte....
Vielen Dank für eure Geduld und Hilfe
lg, freakC++
-
Du kannst auch innerhalb der IDE (BCB) Konsolenprogramme schreiben. Es ist nicht nötig auf den Komfort einer IDE zu verzichten wenn man C++ lernen will. Es sei denn du willst lernen wie man Makefiles baut.
-
freakC++ schrieb:
ASC hat mir geraten, dass Buch nicht zu benutuen, weil es beispielsweise mit "void main (void)" arbeitet. Doch ist dies aktuell, da auf der ersten Seite steht, dass es aus dem Jahr 2008 stamme.
Das heißt nichts. Ich kann auch heute ein Buch herausbringen mit dem Titel Rechnergrundlagen, und innen dann nur auf die ersten Rechner mit Lochkarten eingehen.
Gerade im C++ Umfeld gibt es etliche ewig gestrige, die meinen C++ zu beherrschen, aber nicht mal im 10 Jahres Rhytmus ihre Kenntnisse auffrischen. Den so alt ist der C++ Standard (1998), und seither ist der TR1 (2003) heraus gekommen und der nächste C++ Standard (Gerne als C++0x benannt, mit etwas Glück wird er tatsächlich ein C++09) steht vor der Tür.
Und auch wenn einige sagen, das die Änderungen nicht so gravierend sind, ist es dennoch schlecht wenn Anfänger im Vorfeld etwas lernen, wo sie später wieder umlernen dürfen.