Archiv verlassen und diese Seite im Standarddesign anzeigen : WElcher Compieler?
Lutschbonbon
11.10.2003, 04:57
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?
Jesus_666
12.10.2003, 04:03
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) (http://gcc.gnu.org/), mit dem ich relativ sicher sein kann, daß mein Code ANSI-konform und portabel ist. Genau genommen benutze ich Cygwin (http://sources.redhat.com/cygwin/).
Die GCC kommt von der Free Software Foundation (FSF), bzw. dem GNU-Projekt (http://www.gnu.org/). Sie ist Open Source und komplett kostenlos.
Lutschbonbon
13.10.2003, 23:19
die meisten compiler die ich kenne sind sau kompliziert wie ist es mit deinem?
Jesus_666
14.10.2003, 00:23
Kommt drauf an, was du machen willst...
Wenn du vorhast, ein einfaches Programm mit einer einzigen Quelldatei ohne Optimierung zu kompilieren bist du mit...
g++ <quelldatei>.c -o <zieldatei>
...schon bedient.
Wenn du eine einzige Quelldatei in eine DLL kompilieren willst, geht das auch, mit...
g++ <quelldatei>.c -c -o <objektdatei>.o
g++ <objektdatei>.o -shared -o <dll>.dll -Wl,--out-implib,<dll>.a
Beispiele:
Normales Programm aus einer Quelldatei
g++ TestProg.c -o TestProg
Erzeugt: TestProg.exe
DLL aus einer Quelldatei:
g++ DLLTest.c -c -o DLLTest.o
g++ DLLTest.o -shared -o DieDLL.dll -Wl,--out-implib,DieDLL.a
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.
Lutschbonbon
04.12.2003, 20:24
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 :(
Jesus_666
04.12.2003, 21:04
Als erstes mußt du den Compiler installieren. Ich empfehle dir da MinGW (http://www.mingw.org/), eine der beiden Windows-Umsetzungen der GCC.
MinGW selbst lädst du hier (http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download) runter, dazu könntest du vielleicht noch MSYS (http://prdownloads.sf.net/mingw/MSYS-1.0.9.exe?download) 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.
Lutschbonbon
04.12.2003, 22:01
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!
Lutschbonbon
05.12.2003, 20:21
vllt konntest es nich tlesen da ich es nur reingeedit habe ^^
Jesus_666
05.12.2003, 22:27
Original geschrieben von Lord KIll
vllt konntest es nich tlesen da ich es nur reingeedit habe ^^
Exakt.
Hmmmmmmmmm... Nur habe ich keine Ahnung, was der Fehler bedeutet... ^^°
Lutschbonbon
06.12.2003, 03:13
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?
Jesus_666
06.12.2003, 03:28
Wo der Code ist, ist unerheblich. Du rufst einfach g++ vom Code-Verzeichnis aus auf.
LastLotus
06.12.2003, 04:26
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 ...
Lutschbonbon
08.12.2003, 02:56
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?
Jesus_666
08.12.2003, 19:53
Nein.
Kommt das jedes mal, wenn du was kompilierst oder nur bei bestimmtem Code?
Lutschbonbon
08.12.2003, 20:56
hab den code verände, also nach fehlern geschaut, aber es kam genau das selbe wie davor.
Jesus_666
08.12.2003, 22:39
Probiere mal, was ganz einfaches zu kompilieren... ein Hello World oder so.
Kann sein, daß du ein grundsätzliches Problem hast...
Lutschbonbon
08.12.2003, 22:52
Das war das programm was ich komplimieren wollte :D
Quellcode (hoffe ma da sich da keinen fehler gemacht habe :rolleye:)
#include <iostream.h>
int main()
{
cout << "Hallo Welt!" ;
return 0 ;
}
genauer fehler
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 :rolleyes:
Jesus_666
08.12.2003, 23:08
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?
Lutschbonbon
09.12.2003, 00:07
windows editor o_0
Jesus_666
09.12.2003, 00:56
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++ (http://www.bloodshed.net/devcpp.html) drauftun. Dev-C++ basiert auf MinGW... Vielleicht läuft's damit besser.
Lutschbonbon
09.12.2003, 01:19
k habe nun Dev-C++ 4.9.8.0 drauf. nun habe ich alles soweit, das nur noch die fehlermeldung kommt
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.)
code :
#include <iostream>
int main()
{
cout << "hi" ;
return 0;
}
was ist da nun falsch :) lol
habe edit gemacht!
Jesus_666
09.12.2003, 01:35
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...
Lutschbonbon
09.12.2003, 01:48
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
Gamabunta
09.12.2003, 02:19
Der code muss so aussehen:
#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
Ich hoffe ich konnte dir helfen.:)
Lutschbonbon
09.12.2003, 02:34
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
Gamabunta
09.12.2003, 02:44
@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.
Lutschbonbon
09.12.2003, 02:50
hmmm mit ner key abfrage vllt? also das man enter drücken muss?
Jesus_666
09.12.2003, 19:14
Die Namespace-Sache... Mein G++ geht automatisch von std als Standardnamespace aus, wenn keiner definiert wird, deshalb hab' ich nicht daran gedacht.
#include <iostream>
using namespace std;
int main()
{
char chr_blubb;
cout << "Hallo Welt!/n";
cin >> chr_blubb;
}
Damit sollte er eine Eingabe nehmen. Ich kann's nicht nachschlagen, weil offenbar gerade alle meine Bookmarks verschwunden sind, DAMMIT!
Lutschbonbon
09.12.2003, 21:18
ich habs mit cin >> gemacht^^ nun muss man über das kreuz oben beenden^^ thx again ^^ hoffe das ich jetzt nichts mehr falsch mache ^^
Jesus_666
09.12.2003, 21:50
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.
Lutschbonbon
09.12.2003, 21:56
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ß
Jesus_666
09.12.2003, 22:09
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ß
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.
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).
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.