WinFuture-Forum.de: [c++] Compiler - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

[c++] Compiler Warum "compiled" jeder anderst >_>


#1 Mitglied ist offline   Sin 

  • Gruppe: aktive Mitglieder
  • Beiträge: 414
  • Beigetreten: 13. Mai 04
  • Reputation: 0

geschrieben 07. Juni 2005 - 19:09

Huhu,

bin nu wirklich etwas genervt von der C++ Compiler Sache ....

In der Schule nutzen wir Borland 5.02 (or so ..) nunja .. das ding is uralt ...
Zuhause habe ich Dev-C++ weil es mir empfohlen wurde und es eben kostenlos ist.


Leider funktioniert mein Dev-C++ Code kein Stück in Borland und umgekehrt ... es scheint so als Nutzen beide teilweise ganze andere Sprachelemente...

Also wie bitte soll ich "Regelkonform" C++ programmieren wenn jeder Compiler die Sache anderst sieht?

Hab ich da irgendwas falsch verstanden und was sind denn eure Tipps zum C++ Compiler (und Editor ^^)

Gruß,

Sin
0

Anzeige



#2 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 07. Juni 2005 - 21:18

_eigentlich_ müssten alle C++ Compiler den Ansi C++ Standard unterstützen.

Probier doch mal den C++ Compiler von GNU (ist in der GNU Compiler Collection dabei, wird normalerweise mit g++ abgekürzt). Wenn du mit Windows entwickelst, ist die Installation nicht ganz so einfach wie unter einem echten Unixoiden wie z.B. Linux.

Erste Anlaufstelle: http://gcc.gnu.org
GCC mit Unix-abhängigkeiten: http://www.mingw.org

Gute Englischkenntnisse und Durchhaltevermögen beim Durchlesen der Dokumentation sind ein Muss. Wenn du beides nicht mitbringst, ist der GNU C++ Compiler, zumindest unter Windows, nix für dich. Alternativ zu mingw könntest du auch Cygwin verwenden. Cygwin ist eine DLL für Windows, die Windows sozusagen Posix-kompatibel macht (ohoh, verlasst euch nicht drauf was ich zu cygwin sag, ich habs mir nur mal ganz kurz angeschaut). Über das Setupprogramm lassen sich viele Programme - u.a. die GCC - gleich installieren. Ich vermut mal schwer, dass die Installation mit Cygwin einfacher ist, du aber den Binärcode dann nicht einfach auf einem Windows-PC ohne Cygwin laufen lassen kannst (aber auch das muss nicht stimmen).

Grüsse,
mo
I'm mó. mo's good twin.
0

#3 Mitglied ist offline   Sin 

  • Gruppe: aktive Mitglieder
  • Beiträge: 414
  • Beigetreten: 13. Mai 04
  • Reputation: 0

geschrieben 08. Juni 2005 - 12:02

Nun wie ich scheinbar feststellen musste hat jeder Compiler so seine eigenen Bibliotheken .. und genau da liegt wohl mein Hauptproblem...

Wie soll ich eine Programmiersprache lernen wenn bei jedem Compiler eine andere Syntax hermuss ... ;/
0

#4 Mitglied ist offline   mo 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.796
  • Beigetreten: 17. Juni 02
  • Reputation: 0
  • Wohnort:Ulm / BaWü

geschrieben 08. Juni 2005 - 17:24

Die Bibliotheken haben wenig mit der C++ Syntax zu tun.
Wenn du ANSI C++ kannst, solltest du dich eigentlich überall durchschlagen können. Verschiedene _Implementationen_ der Bibliotheken bedeuten ja nicht Zwangsläufig andere Namensgebung. Imho haben die meisten Programmieranfänger in C++ beim Compilerwechsel eher Probleme damit, mit den unterschiedlichen Namespace-konventionen klarzukommen. Wer sich aber von vornhinein streng an die Namespaces hält (sprich auch STD namespace zB angibt, zB STD::cout << "lala"; statt cout << "lala"; bzw. die namespaces setzt) hat wenig Probleme :ph34r:
I'm mó. mo's good twin.
0

#5 Mitglied ist offline   Sin 

  • Gruppe: aktive Mitglieder
  • Beiträge: 414
  • Beigetreten: 13. Mai 04
  • Reputation: 0

geschrieben 08. Juni 2005 - 20:30

naja beispiel ..
Bei Borland -> <conio.h> und ich kann clrscr(); nutzen ...
wenn ich das bei Dev-C++ eingebe gibts nur Fehler .. ich denke er hat vielleicht nichtmal die conio.h bibliothek -> was macht man bei sowas Oo?
0

#6 Mitglied ist offline   xero 

  • Gruppe: aktive Mitglieder
  • Beiträge: 213
  • Beigetreten: 23. Dezember 02
  • Reputation: 0

geschrieben 08. Juni 2005 - 21:11

achja, die berühmten Probleme...such dir vielleicht mal die conio.h im Netz(oder vielleicht hast du sie ja auch schon auf der Platte), hau sie in den gleichen Ordner wie dein mainfile und include mit #include "conio.h" und dann mal schauen was rauskommt...

das Problem wurd aber glaub ich schon mal hier besprochen; eventuell mal die Suchfunktion ausprobieren.
0

#7 Mitglied ist offline   hema 

  • Gruppe: Mitglieder
  • Beiträge: 3
  • Beigetreten: 09. August 05
  • Reputation: 0

geschrieben 09. August 2005 - 11:20

Das es Probleme gib von dem Borland zu dem Dev Compiler kommt unter anderem davon das der Borland Compiler Atribute setzt ohne den Benuter zu fragen. Desweitern ist der Befehl clrscr() nur bei dem Borland Compiler deklariet.
Wenn du C "Richtig" lernen willst wirst du wohl auf den nicht ganz so kompfortabelen GNU Compiler nutzen wie mo bereits geschrieben hat.
0

#8 Mitglied ist offline   #c/p/p/oo-awi+86 

  • Gruppe: Mitglieder
  • Beiträge: 2
  • Beigetreten: 31. Januar 04
  • Reputation: 0

geschrieben 22. August 2005 - 11:56

Ähm, Dev-C++ verwendet mingw/g++! Dev-C++ ist nur die IDE, die man aber mit mingw gleich in einem Paket herunterladen kann. Und jetzt noch Qt4 für grafische Oberflächen, dann hat man mit mingw/Dev-C++/Qt4 schon eine sehr komfortable Entwicklerumgebung.
0

#9 Mitglied ist offline   jerry 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 22. August 05
  • Reputation: 0

geschrieben 22. August 2005 - 13:05

Zur eigentlichen Frage zurück: Warum funktioniert (bestimmter) Borland-Code nicht unter zB. dev c++. Gewisse Funktionen greifen auf die Hardware zu (conio heisst consolen in- /output). Das funktioniert bei DOS halt anders als bei WIN-Ablegern (zB. clrscr() oder textbackground()). Die Standard-Funktionen sind dagegen ohne weiteres übertragbar. <_<
0

#10 Mitglied ist offline   tosto 

  • Gruppe: aktive Mitglieder
  • Beiträge: 432
  • Beigetreten: 08. Januar 04
  • Reputation: 0

geschrieben 22. August 2005 - 15:07

muss hier einen kurzen erfahrungsbericht mit dem selben borland compiler wie ihn sin verwendet abgeben.
in dieser teilweise doch sehr hilfreichen hilfe der borland ide, gibt es u.a. auch einen eintrag für die bibliothek dos.h.
in dieser bibliothek dos.h ist eine funktion delay(). diese wird in der hilfe sogar mit code beispiel erklärt.
ausprobieren ist aber fehlanzeige: in meiner dos.h ist delay nicht definiert.
das verwenden dieses befehles für also beim compilieren zu fehlern.
es gibt einen deklarations eintrag (kann man das so nenen, also es ist nicht defniert über define !) aber mittels define wird diese funktion nicht bekannt gemacht.
nachholen von hand ging bei mir auch nicht glatt. nun kennt der compiler zwar die funktion, im programm selber hatte dies aber keine auswirkung.

fand das schon krass das man die beispiele aus der hilfe nicht verwenden kann...

des weiteren schein mir da eh jeder so sein eigenes süppchen zu kochen.
Standard befehle gehen bei jedem compiler den ich bisher in den händen hatte, aber selbst da hängen sich manche auf.
in c++ dem borland compiler bekant zu machen er soll mit namespaces arbeiten endet bei mir immer mit einer fehlermeldung.
schön wars.

ciao

Dieser Beitrag wurde von tosto bearbeitet: 22. August 2005 - 15:07

0

#11 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

geschrieben 23. August 2005 - 19:05

Ja das ist klar, wenn du spezielle Bibliotheken nutzt, die nur unter dem einen Compiler angeboten werden, dann kannst du beim nächsten Compiler schon Pech haben, dafür gibts ja ANSI C++ , das festlegt was Standard ist und was nicht, so gut wie jeder Compiler hersteller, vor allem Microsoft und Borland erweitern ihre Bibliotheken natürlich um mehr Funktionalität zu bieten.

Drum, wenn du was programmieren willst, dann solltest du drauf achten nur Bibliotheken des ANSI Standard verwendest oder eben damit rechnen, dass nicht alles auf dem anderen Compiler läuft. Du kannst auch mit ifdef (
#if defined(__BORLANDC__) || defined(__BCPLUSPLUS__))prüfen je nachdem welcher Compiler verwendet wird und dann halt darin den Code anpassen.
0

#12 Mitglied ist offline   Sin 

  • Gruppe: aktive Mitglieder
  • Beiträge: 414
  • Beigetreten: 13. Mai 04
  • Reputation: 0

geschrieben 11. September 2005 - 15:34

mhh. ... gibt es nicht irgend ne große Bibliotheken Sammlung im Netz?
Ich vermisse z.b. einfache Funktionen wie wait() oder sowas .. also um kurz zu warten..

;/

Und nutze immernoch Dev C++ ;D (ergo den g++ compiler ..)
0

#13 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

geschrieben 11. September 2005 - 18:31

Gibts doch heißt:

int ms=100;//Millisekunden
sleep(ms);
0

#14 Mitglied ist offline   Sepultura 

  • Gruppe: aktive Mitglieder
  • Beiträge: 663
  • Beigetreten: 18. September 05
  • Reputation: 7
  • Geschlecht:Männlich
  • Wohnort:Dresden
  • Interessen:PC, Internet, C/C++

geschrieben 18. September 2005 - 16:07

Borland C (++) 5 ist ziemlich gräßlich. Der kann kein Standardkonformes C++. Borland C(++) 5 sollte man nur C proggen für mehr ist es zu schlecht. Habt ihr in der Schule nicht MS Visual Studio 6? Auf unserer Schule ist sind sowohl MSVC++6 als auch Borland C(++) 5 drauf und wir nutzen alle nur MS VC++ 6, da es viel besser ist als das Borland Produkt.

kleines Beispiel, wo Borland 5 versagt:
#include<iostream>
using namespace std;

int main()
{
    cout<<"Hallo World"<<endl;
    return 0;
}


oder sogar hier versagt er

#include<iostream>

int main()
{
     std::cout<<"Hallo World"<<std::endl;
     return 0;
}


Mit Dev-C++ kenn ich mich net aus.

Mit dem Befehl clrscr(); hier ein Lösungsvorschlag:
void clrscr(void)
{
    system("cls");
}


MfG
Sepultura
Wer Japanische Produkte kauft, unterstützt den grausamen Walfang
Boykottiert JAPAN
0

#15 Mitglied ist offline   [U]nixchecker 

  • Gruppe: aktive Mitglieder
  • Beiträge: 347
  • Beigetreten: 17. Mai 05
  • Reputation: 0
  • Wohnort:Bayern
  • Interessen:Informatik, Linux, Rollerbladen, Bodybuilding, GungFu

geschrieben 18. September 2005 - 22:33

Zitat

Borland C (++) 5 ist ziemlich gräßlich. Der kann kein Standardkonformes C++. Borland C(++) 5 sollte man nur C proggen für mehr ist es zu schlecht.


Das ist auch kein Wunder, denn Borland C++ 5.0 stammt aus dem Jahre 1996 der Ansi C++ Standard wurde aber erst 1998 ins Leben gerufen:-)

Also da ich glaube, dass die Borland Entwickler keine Hellseher waren ist es auch normal, dass sie in der 5.0er Version noch keinen Standard implementieren konnten, den es da noch nicht gab.


Und in der 5.5er Version wird das was du gerade an Code vorgeführt hast problemlos laufen :-)
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0