Mich würde mal interessiern welchen Compiler ihr benutzt und wie viel er gekostet hat oder wie viel er kosten würde ;)
Und was haltet ihr vom Borland Compiler oder empfehlt ihr ehr den Microsoft Compiler?
Druckbare Version
Mich würde mal interessiern welchen Compiler ihr benutzt und wie viel er gekostet hat oder wie viel er kosten würde ;)
Und was haltet ihr vom Borland Compiler oder empfehlt ihr ehr den Microsoft Compiler?
Ich benutze den Borland nicht, weil ich standardkonformes C++ schreiben will und den von Microsoft.. *kicher* den *gacker* Microsoft-C++...
MUAAAAHAHAHAHAHAHAAAAAAHAHAA!! *gröl*
...
*ähem*
Der Microsoft-Compiler ist nur was für Leute, die nur und ausschließlich Windows-Anwendungen kompilieren wollen, was ich als zumindest geringfügig schwachsinnig erachte.
Ich benutze G++, den C-Compiler der GNU Compiler Collection (GCC), mit dem ich relativ sicher sein kann, daß mein Code ANSI-konform und portabel ist. Genau genommen benutze ich Cygwin.
Die GCC kommt von der Free Software Foundation (FSF), bzw. dem GNU-Projekt. Sie ist Open Source und komplett kostenlos.
die meisten compiler die ich kenne sind sau kompliziert wie ist es mit deinem?
Kommt drauf an, was du machen willst...
Wenn du vorhast, ein einfaches Programm mit einer einzigen Quelldatei ohne Optimierung zu kompilieren bist du mit...
[font=courier] g++ <quelldatei>.c -o <zieldatei>[/font]
...schon bedient.
Wenn du eine einzige Quelldatei in eine DLL kompilieren willst, geht das auch, mit...
[font=courier] g++ <quelldatei>.c -c -o <objektdatei>.o
g++ <objektdatei>.o -shared -o <dll>.dll -Wl,--out-implib,<dll>.a[/font]
Beispiele:
Normales Programm aus einer Quelldatei
[font=courier] g++ TestProg.c -o TestProg[/font]
Erzeugt: TestProg.exe
DLL aus einer Quelldatei:
[font=courier] g++ DLLTest.c -c -o DLLTest.o
g++ DLLTest.o -shared -o DieDLL.dll -Wl,--out-implib,DieDLL.a[/font]
Erzeugt: DieDLL.dll (die DLL); DieDLL.a (wird benutzt, um andere Programme auf die DLL zugreifen zu lassen)
Solange du nicht vorhast, irgendwelche architekturspezifischen Optimierungen an- oder auszuschalten oder sonst irgendwelche exotischen Sachen anzustellen, solltest du mit g++ zurechtkommen.
kannst du mir bitte erklären wie der compiler funzt? wo muss ich die datei reintun? immer wenn ich in dos dann den befehl reinschreibe, sagt er das er den befehl nicht kennt :(
Als erstes mußt du den Compiler installieren. Ich empfehle dir da MinGW, eine der beiden Windows-Umsetzungen der GCC.
MinGW selbst lädst du hier runter, dazu könntest du vielleicht noch MSYS nehmen, das einige Linux-Fetures beinhaltet (die könntest du brauchen, wenn du bestimmte Programme aus dem Netz kompilieren willst). Ist deine Entscheidung.
Jetzt kommt der Teil, bei dem ich keine genauen Informationen geben kann - ich benutze MinGW nicht.
Erst installierst du MSYS. Dann installierst du MinGW unter <MSYS-Ordner>/mingw.
Wenn du MSYS nicht willst, installierst du einfach MinGW.
Als nächstes solltest du vielleicht den Pfad ändern. Kann sein, daß MinGW das auch selbst erledigt.
[Anleitung gilt für Windows XP] Systemsteuerung -> System -> Erweitert -> Umgebungsvariablen -> Systemvariablen -> Path
An das Ende der Variable hängst du ein Semikolon (;) und den Pfad zu MinGW (z.B. "E:\Programme\mingw").
Jetzt solltest du den Compiler installiert haben und von überall darauf zugreifen können.
Als Test gibst du auf der Kommandozeile gcc -v ein. Entweder kommen jetzt ein paar Angeben zum Compiler oder der Pfad stimmt nicht. In dem Fall mußt du nachsehen, wo das Programm gcc.exe ist und den entsprechenden Pfad in der Path-Variable eintragen.
geil. Thx funzt ^^ hoffe das ich keinen weiteren probs haben werde ^^ nochma thx ^^
hm funzt das auch mit c++ progs? oder nur mit c? denn bei mir kommt nen seltsamer fehler wie: warning: null charachter(s) ignored!
vllt konntest es nich tlesen da ich es nur reingeedit habe ^^
Exakt.Zitat:
Original geschrieben von Lord KIll
vllt konntest es nich tlesen da ich es nur reingeedit habe ^^
Hmmmmmmmmm... Nur habe ich keine Ahnung, was der Fehler bedeutet... ^^°
hmmm schlecht :(
dann ne frage:
wenn ich etwas complimieren möchte, muss die datei sich dann im ordner mingw\bin\ befinden? also dort wo die g++.exe ist? oder muss die im ordner gcc-3.2.2 sein?
ich mach das immer so.
gehe über dos dann in den bin ordner wo datei ist, dann mache ich g++ test.cpp -o test
ist doch richtig so oder?
Wo der Code ist, ist unerheblich. Du rufst einfach g++ vom Code-Verzeichnis aus auf.
Ich hoffe ich habe das Problem richtig verstanden, wenn nicht, gome.
Ich würde vorschlagen nen Path in das ..\bin Verzeichniss zu setzen, damit sowas wie "c:\j2sdk1.4.2_02\bin\javac" entfällt, dann reicht es nämlich nur noch "javac" im Dos-Prompt einzutippen.
Zu finden ist es bei Win2k/XP unter:
"\Systemsteuerung\System\Erweitert\Umgebungsvariablen". Dann einfach einen neuen Eintrag machen, oder in ein existierendes reineditieren.
au revoir ...
nunja es geht immer noch net :(
@jesus
weisst du vllt jetzt woran es liegen könnte? oder kann mir jemand anderes einen Free comiler empfhelen?
Nein.
Kommt das jedes mal, wenn du was kompilierst oder nur bei bestimmtem Code?
hab den code verände, also nach fehlern geschaut, aber es kam genau das selbe wie davor.
Probiere mal, was ganz einfaches zu kompilieren... ein Hello World oder so.
Kann sein, daß du ein grundsätzliches Problem hast...
Das war das programm was ich komplimieren wollte :D
Quellcode (hoffe ma da sich da keinen fehler gemacht habe :rolleye:)
genauer fehlerZitat:
#include <iostream.h>
int main()
{
cout << "Hallo Welt!" ;
return 0 ;
}
:rolleyes:Zitat:
hello.cpp:1: stray '\377' in program
hello.cpp:1: stray '\376' in program
hello.cpp:1: parse error before `#' token
hello.cpp:1:4: warning: null character(s) ignored
hello.cpp:1:6: warning: null character(s) ignored
hello.cpp:1:8: warning: null character(s) ignored
hello.cpp:1:10: warning: null character(s) ignored
hello.cpp:1: parse error before `l'
hello.cpp:1:12: warning: null character(s) ignored
hello.cpp:1:14: warning: null character(s) ignored
hello.cpp:1:16: warning: null character(s) ignored
hello.cpp:1:18: warning: null character(s) ignored
hello.cpp:1:22: warning: null character(s) ignored
hello.cpp:1:24: warning: null character(s) ignored
hello.cpp:1:26: warning: null character(s) ignored
hello.cpp:1:28: warning: null character(s) ignored
hello.cpp:1:30: warning: null character(s) ignored
hello.cpp:1:32: warning: null character(s) ignored
hello.cpp:1:34: warning: null character(s) ignored
hello.cpp:1:36: warning: null character(s) ignored
hello.cpp:1:38: warning: null character(s) ignored
hello.cpp:1:40: warning: null character(s) ignored
hello.cpp:1:42: warning: null character(s) ignored
hello.cpp:1:44: warning: null character(s) ignored
hello.cpp:2:1: warning: null character(s) ignored
hello.cpp:3:1: warning: null character(s) ignored
hello.cpp:4:1: warning: null character(s) ignored
hello.cpp:5:1: warning: null character(s) ignored
hello.cpp:5:5: warning: null character(s) ignored
hello.cpp:5:7: warning: null character(s) ignored
hello.cpp:5:9: warning: null character(s) ignored
hello.cpp:5:13: warning: null character(s) ignored
hello.cpp:5:15: warning: null character(s) ignored
hello.cpp:5:17: warning: null character(s) ignored
hello.cpp:5:19: warning: null character(s) ignored
hello.cpp:5:21: warning: null character(s) ignored
hello.cpp:5:23: warning: null character(s) ignored
hello.cpp:6:1: warning: null character(s) ignored
hello.cpp:7:1: warning: null character(s) ignored
hello.cpp:8:1: warning: null character(s) ignored
hello.cpp:9:1: warning: null character(s) ignored
hello.cpp:9:7: warning: null character(s) ignored
hello.cpp:10:1: warning: null character(s) ignored
hello.cpp:11:1: warning: null character(s) ignored
hello.cpp:11:11: warning: null character(s) ignored
hello.cpp:11:13: warning: null character(s) ignored
hello.cpp:11:15: warning: null character(s) ignored
hello.cpp:11:17: warning: null character(s) ignored
hello.cpp:11:21: warning: null character(s) ignored
hello.cpp:11:23: warning: null character(s) ignored
hello.cpp:11:26: warning: null character(s) preserved in literal
hello.cpp:11:51: warning: null character(s) ignored
hello.cpp:11:55: warning: null character(s) ignored
hello.cpp:12:1: warning: null character(s) ignored
hello.cpp:13:1: warning: null character(s) ignored
hello.cpp:13:7: warning: null character(s) ignored
hello.cpp:13:9: warning: null character(s) ignored
hello.cpp:13:11: warning: null character(s) ignored
hello.cpp:13: parse error before `u'
hello.cpp:13:13: warning: null character(s) ignored
hello.cpp:13:15: warning: null character(s) ignored
hello.cpp:13:17: warning: null character(s) ignored
hello.cpp:13:21: warning: null character(s) ignored
hello.cpp:13:25: warning: null character(s) ignored
hello.cpp:14:1: warning: null character(s) ignored
hello.cpp:15:1: warning: null character(s) ignored
hello.cpp:16:1: warning: null character(s) ignored
hello.cpp:17:1: warning: null character(s) ignored
hello.cpp:17:7: warning: null character(s) ignored
hello.cpp:17:7: warning: no newline at end of file
Ich bekomme mit Cygwin nur eine Warnung, weil <iostream.h> veraltet ist (heißt jetzt <iostream>) und weil die newline am Ende fehlt. Keine Fehler.
Mit welchem Programm hast du die Quelldatei erstellt?
windows editor o_0
Das ist jetzt SEHR merkwürdig... Ich hatte gedacht, daß du vielleicht Wordpad o.Ä. benutzt und nicht als Text gespeichert hättest...
Hmm. Du könntest es noch mit Cygwin versuchen oder MinGW deinstallieren und Dev-C++ drauftun. Dev-C++ basiert auf MinGW... Vielleicht läuft's damit besser.
k habe nun Dev-C++ 4.9.8.0 drauf. nun habe ich alles soweit, das nur noch die fehlermeldung kommt
code :Zitat:
C:/MinGW/bin/hello.cpp: In function `int main()':
C:/MinGW/bin/hello.cpp:6: `cout' undeclared (first use this function)
C:/MinGW/bin/hello.cpp:6: (Each undeclared identifier is reported only once for
each function it appears in.)
was ist da nun falsch :) lolZitat:
#include <iostream>
int main()
{
cout << "hi" ;
return 0;
}
habe edit gemacht!
Hmm, was macht da die Leerzeile zwischen der Funktionsdeklaration und dem Funktionsrumpf? Schieb' das mal zusammen.
Falls das nichts bringt, probier' mal, <iostream> wieder durch <iostream.h> zu ersetzen. Immerhin hat er schon vorher keinen Kommentar dazu abgegeben, daß <iostream.h> nicht mehr aktuell wäre...
alles schon probiert. hab sogar das int mit void erseztt bringt auch nix :( weiss wirklich langsam net, was das soll!
hab zwar keine ahnung, aber ich denke das er sich im mom an dem befehl cout aufregt. weiss zwar nicht warum, aber er schreibt das im fehler prozess und im editor streicht er das auch rot an. aber warum?
ps: als ich den befel cout rauslöschte, ging es auf einmal o_0
Der code muss so aussehen:
Ich hoffe ich konnte dir helfen.:)Code:#include <iostream>
using namespace std; //diese Zeile fehlt
int main()
{
cout << "Hallo Welt!/n" ;
return 0 ;
}
//wenn du hier keine neue Zeile hast kommt hier die
Meldung: "warning: no newline at the end of file
geil! jetzt gehts :) aber wie kann ich das programm starten, ohne es von der dos kommandozeile zu starten? also das ich einfach doppelklick auf exe machen kann. oder geht das noch nicht mit meinen wissen :)
nochmal grossen THX @ jesus & Gamabunta
@Lord Kill
Wenn du deine Ergebnisse begutachten willst, geht es nicht. Eigentlich gehts auch ja. Doppelklick drauf, Fenster wird geöffnet, Programm wird abgearbeitet, sprich "Hallo Welt!" wird ausgegeben, nach dem Abarbeiten des Programms wird das Fenster gleich wieder geschlossen. aber bei solch einem Programm heißt das, dass das Fenster nur wenige Milisekunden offen ist. So kann man keine Ergebnisse betrachten.
hmmm mit ner key abfrage vllt? also das man enter drücken muss?
Die Namespace-Sache... Mein G++ geht automatisch von std als Standardnamespace aus, wenn keiner definiert wird, deshalb hab' ich nicht daran gedacht.
Damit sollte er eine Eingabe nehmen. Ich kann's nicht nachschlagen, weil offenbar gerade alle meine Bookmarks verschwunden sind, DAMMIT!Code:#include <iostream>
using namespace std;
int main()
{
char chr_blubb;
cout << "Hallo Welt!/n";
cin >> chr_blubb;
}
ich habs mit cin >> gemacht^^ nun muss man über das kreuz oben beenden^^ thx again ^^ hoffe das ich jetzt nichts mehr falsch mache ^^
BTW, return 0 kann man sich normalerweise sparen - wenn das Programm nichts anderes gesagt bekommt (und nicht abstürzt) gibt es immer 0 zurück.
Du solltest return 0 nur benutzen, wenn das Programm tatsächlich an einer von dir bestimmten Stelle beendet werden soll und wenn es nicht wünschenswert ist, daß das einfach dadurch geschieht, daß main() komplett durchlaufen wird.
thx for tip! wusste ich nicht. Is das normal, das die Hello.exe 500kb gross ist? Da waren nur 10 Zeilen, wenn man dann ein grösseres Programm schreibt O_O oder kann man das irgendwie kleiner machenß
In deinem Programm ist nicht nur das drin, was du geschrieben hast! Erst mal kommt da noch der Inhalt von <iostream>. Dann noch einige Sachen, die jeder Win32-Programm haben muß. Das ist schon was.Zitat:
Original geschrieben von Lord KIll
thx for tip! wusste ich nicht. Is das normal, das die Hello.exe 500kb gross ist? Da waren nur 10 Zeilen, wenn man dann ein grösseres Programm schreibt O_O oder kann man das irgendwie kleiner machenß
Dazu kommt noch, daß du vermutlich ohne Optimierung kompiliert hast. wie man das in Dev-C++ einstellt, weiß ich nicht; der g++-Parameter dafür ist -O?, wobei ? eine Zahl ist (2 ist ganz brauchbar).