Forum: PC-Programmierung welchen c Compiler?


von Kurt B. (kurt-b)


Lesenswert?

.

Hab mir das Buch "C programmieren" von Guido Krüger angelacht (Ein Kurs 
zum Selbststudium mit Musterlösungen) und möchte nun ein wenig 
reinschnuppern (Ziel: die Beispiele um den AVR verstehen).
Dazu ist ein Compiler für den PC hilfreich (W7/64).
Welchen würdet ihr mir empfehlen?

 Kurt

: Verschoben durch Moderator
von Matthias X. (current_user)


Lesenswert?


von Kurt B. (kurt-b)


Lesenswert?


von xyz (Gast)


Lesenswert?

Ja was willst Du nun programmieren den PC oder den AVR ?
PC z.B. MS-Visual-Studio oder QT-Creator.
AVR z.B. Atmelstudio oder AVR-GCC (WinAVR)

von GCC (Gast)


Lesenswert?

Code::Blocks mit dem GCC
http://www.codeblocks.org/downloads

von Amateur (Gast)


Lesenswert?

Die Frage ist schon X-Mal durchgekaut worden.

Auch hier im Forum.

In fast allen Fällen ging es um "Gratis".

Versuchs mal mit der, zugegebenermaßen nicht umwerfenden, Suchfunktion.

von Klaus (Gast)


Lesenswert?

Ich habe mich auch heute mit einer IDE befasst.

Leider musste ich feststellen, dass alles mit GCC für die Tonne ist. 
Letzte Updates von Dev-C++ oder Code:Blocks liegen Jahre zurück. Und 
genau so funktionieren Sie auch.
Z.B. musste ich feststellen, das bei Code:Blocks das Debuggen nicht 
funktioniert: Danke.

Ich sags ungern aber es stimmt: Wenn Du damit (vernünftig) arbeiten 
willst, dann kommt nur das Visual Studio von Microsoft in Frage.

Gruss Klaus.

von Dennis S. (eltio)


Lesenswert?

Klaus schrieb:
> Ich habe mich auch heute mit einer IDE befasst.
>
> Leider musste ich feststellen, dass alles mit GCC für die Tonne ist.
> Letzte Updates von Dev-C++ oder Code:Blocks liegen Jahre zurück. Und
> genau so funktionieren Sie auch.
> Z.B. musste ich feststellen, das bei Code:Blocks das Debuggen nicht
> funktioniert: Danke.
>
> Ich sags ungern aber es stimmt: Wenn Du damit (vernünftig) arbeiten
> willst, dann kommt nur das Visual Studio von Microsoft in Frage.
>
> Gruss Klaus.

Wovon redet der Mensch? Was hat die IDE mit dem Compiler zu tun? Nimm 
doch Eclipse, Netbeans, KDevelop, eine der anderen 100 IDE oder 
puristisch einen Texteditor.

Gruß
Dennis

von Tom (Gast)


Lesenswert?

Klaus schrieb:
> das Visual Studio von Microsoft

Kann das inzwischen C99?

von Daniel A. (daniel-a)


Lesenswert?

Klaus schrieb:
> Leider musste ich feststellen, dass alles mit GCC für die Tonne ist.

Wie du wohl richtig erkannt haben musst gibt es keine guten IDEs, da in 
jeder IDE der gcc verwendet werden kann. Der GCC ist einfach zu gut für 
IDEs.

> Letzte Updates von Dev-C++ oder Code:Blocks liegen Jahre zurück.
Falsch. Zitat von http://sourceforge.net/projects/orwelldevcpp/ :
 "Last Update: 2015-04-27"

> Ich sags ungern aber es stimmt: Wenn Du damit (vernünftig) arbeiten
> willst, dann kommt nur das Visual Studio von Microsoft in Frage.

Ein grauenhaftes Produkt. Total überladen, und mit den typischen 
"MS-Featuren".

Was einzig wahre ist: Linux + makefile + kate + git + bash + gcc 
(mingw).

von Timmo H. (masterfx)


Lesenswert?

CodeBlocks in Verbindung mit resedit (wenn man gui will)  = beste wo 
gibt

von Sebastian V. (sebi_s)


Lesenswert?

Tom schrieb:
> Kann das inzwischen C99?

Der Compiler von Visual Studio ist in erster Linie ein C++ Compiler und 
kann dort die meisten Features von C++14. In C++14 gibts natürlich nicht 
alles was es in C gibt. Dazu zählen schonmal flexible array members und 
variable-lenght arrays aber sonst? Welches Feature vermisst du jetzt 
genau?

Daniel A. schrieb:
> Ein grauenhaftes Produkt. Total überladen, und mit den typischen
> "MS-Featuren".

Was bitte sind "MS-Featuren"? Nenn mir bitte mal ein solches Feature. 
Aber bitte nicht sowas wie "Ist mir zu bunt" oder "Startet zu langsam" 
sondern irgendwas qualitativ schlechtes am Compiler. Grafische 
Oberflächen sind nunmal Geschmackssache und das es überladen ist stimme 
ich zu.

von Timmo H. (masterfx)


Lesenswert?

Alles was man mit VS machen kann, kannst du auch mit 
GCC/minGW/Codeblocks, man muss sich halt mehr mit der WinAPI 
auseinandersetzen, aber am ende ist das executeable zum einen kleiner 
und performantter

von Matthias H. (hallamen)


Lesenswert?

Sebastian V. schrieb:
> Tom schrieb:
>> Kann das inzwischen C99?

> Der Compiler von Visual Studio ist in erster Linie ein C++ Compiler und
> kann dort die meisten Features von C++14. In C++14 gibts natürlich nicht
> alles was es in C gibt. Dazu zählen schonmal flexible array members und
> variable-lenght arrays aber sonst? Welches Feature vermisst du jetzt
> genau?

Nanana, immer langsam mit den jungen Pferden:
- Soweit ich weiß, sind variable-length arrays nicht Teil des C++ 
Standards, auch vom VS werden sie nicht unterstützt (vom GCC schon)
https://msdn.microsoft.com/en-us/library/zb1574zs(v=vs.140).aspx

- VS 2015 ist noch nicht erschienen ( der Release Candidate crasht noch 
ganz gerne und unterstützt einige C++14 Features nur teilweise oder gar 
nicht)
http://blogs.msdn.com/b/vcblog/archive/2015/04/29/c-11-14-17-features-in-vs-2015-rc.aspx

- C++11 wird vom Syntax-highlighting bzw Intellisense (zumindest) in 
VS2013 nicht unterstützt, auch im VS2015 fehlt zumindest vollständiger 
support von constexpr

- OpenMP ist bei Version 2.0 stehen geblieben (aktuell Version 4.0) - 
gilt auch für VS015!

von Klaus (Gast)


Lesenswert?

Das Problem mit den Bastellösungen rund um den GCC ist, dass man oftmals 
ewig rumsuchen/machen muss, bis die einfachsten Dinge funktionieren.
Das ist beim Visual Studio nicht der Fall.

Hier noch eine kleine Suche zu meinem zuvor genannten Debug-Problem bei 
Code-Blocks:
https://www.google.de/?gws_rd=ssl#q=codeblocks+debug+breakpoint+problem&tbs=qdr:y

Das kann man sicherlich lösen. Zuvor liest man sich aber ertmal einen 
Tag ein. Und dann weiss man nicht, was als nächstes kommt.

Gruß Klaus

von Pit (Gast)


Lesenswert?

Hallo,

ich habe damals auch den Fehler gemacht und direkt mit einer IDE 
begonnen, da die Profs das halt so lehren. Wenn ich wieder mit dem 
Programmieren starten würde, würde ich mich erst einmal mit dem Thema 
makefiles beschäftigen und den Code mit einem einfachen Texteditor 
schreiben. Wenn man dann versteht, was hinter make und so steckt kann 
man immer noch auf eine IDE wechseln.
Ansonsten gibt es nicht die "EINE" IDE. Code::Blocks, Eclipse oder auch 
die Qt Umgebung haben so ihre Vor und Nachteile. Einfach testen.
Und wenn du nen AVR programmieren willst wirst du wohl kaum um den GCC 
herumkommen

von P. M. (o-o)


Lesenswert?

Ich bin bisher zwei IDEs über den Weg gelaufen, die wirklich 
out-of-the-box gut funktioniert haben: Atmel AVR Studio und vor Jahren 
der Borland JBuilder. Alles andere erforderte immer auf irgend eine Art 
und Weise ein Gebastel.

von Dussel (Gast)


Lesenswert?

Klaus schrieb:
> Wenn Du damit (vernünftig) arbeiten
> willst, dann kommt nur das Visual Studio von Microsoft in Frage.
Dem kann ich mich soweit anschließen, als dass es mit dem Programmieren 
erst geklappt hat, als das Visual-C++ (damals noch) hatte. Wenn du nicht 
das Hackergefühl brauchst, alles über Kommandozeile und reinen 
Texteditor zu machen, ist das auf jeden Fall eine brauchbare Lösung.

: Bearbeitet durch Moderator
von Oliver S. (oliverso)


Lesenswert?

Kurt sucht einen C-Compiler.

Dussel schrieb:
> Visual-C++

ist da leider keine Lösung. C-Compiler wird von MS kaum 
weiterentwickelt, und ist entsprechend zurückgebleiben. MS konzentriert 
sich rein auf den C++-Compiler.

Und nein, daß ist nicht das gleiche, und es ist auch nicht der selbe 
Compiler.

Und da der Sinn der ganzen Übung später mal die AVR-Programmierung ist, 
die sowieso auf dem gcc voraussetzt, warum nicht gleich gcc.

Die Vorstellung, Programmieren ginge ohne selber denken nur mit 
out-of-the box clicki-bunti-tools, ist eh realitätsfremd.

Oliver

von Sebastian V. (sebi_s)


Lesenswert?

Matthias H. schrieb:
> Nanana, immer langsam mit den jungen Pferden:
> - Soweit ich weiß, sind variable-length arrays nicht Teil des C++
> Standards, auch vom VS werden sie nicht unterstützt (vom GCC schon)
> https://msdn.microsoft.com/en-us/library/zb1574zs(v=vs.140).aspx

Ich hab ja auch nichts anderes behauptet.

von Dussel (Gast)


Lesenswert?

Oliver S. schrieb:
> Dussel schrieb:
>> Visual-C++
> ist da leider keine Lösung.
Das war es damals. Inzwischen ist es zu Visual Studio geworden oder 
davon abgelöst worden. Visual Studio hat auch einen C-Compiler. Wenn du 
sagst, der sei veraltet, nehme ich das mal so hin. Für mich hat es 
gereicht.

Oliver S. schrieb:
> Die Vorstellung, Programmieren ginge ohne selber denken nur mit
> out-of-the box clicki-bunti-tools, ist eh realitätsfremd.
Wenn du damit meinst, dass diese das Programmieren nicht übernehmen, 
hast du natürlich recht. Wenn du allerdings meinst, professionell 
Programmieren ginge ausschließlich mit IDEs nicht, bestätigt das die bei 
dir angenommene fehlende Qualifikation, die sich aus der Wortwahl 
"clicki-bunti-tools" erahnen lässt.

von TriHexagon (Gast)


Lesenswert?

Meine Empfehlung: GCC + QtCreator (optional mit Makefile).

von Kurt B. (kurt-b)


Lesenswert?

Oliver S. schrieb:
> Kurt sucht einen C-Compiler.
>
> Dussel schrieb:
>> Visual-C++
>
> ist da leider keine Lösung. C-Compiler wird von MS kaum
> weiterentwickelt, und ist entsprechend zurückgebleiben. MS konzentriert
> sich rein auf den C++-Compiler.
>
> Und nein, daß ist nicht das gleiche, und es ist auch nicht der selbe
> Compiler.
>
> Und da der Sinn der ganzen Übung später mal die AVR-Programmierung ist,
> die sowieso auf dem gcc voraussetzt, warum nicht gleich gcc.
>
> Die Vorstellung, Programmieren ginge ohne selber denken nur mit
> out-of-the box clicki-bunti-tools, ist eh realitätsfremd.
>

Hallo Leute, erstmal bin ich ein wenig erschlagen, so viele Begriffe die 
mir nichts sagen, ich nicht kenne.

Mein Einstieg in C wäre so angedacht.
Erstmal "Hallo hier bin ich", und einen Zähler der hochzählt, auf den 
PC-Schirm bringen. (mit Hilfe des vorhandenen Buches).
Klappt das einigermassen dann der Sprung um AVR

Wie die grob funktionieren ist mir bekannt (BASCOM und ein wenig 
Hardwareverständnis), es geht also darum den Übergang/Aufsprung zu C zu 
finden und mit einem Auge dann auf die AVRs rüber zu schielen.

(für mich heisst alles was ich brauche um den Text auf den Schirm zu 
bringen Compiler, was das im einzelnen ist das versuche ich 
rauszukriegen)

 Kurt

von Jens M. (Gast)


Lesenswert?

Kurt B. schrieb:
> es geht also darum den Übergang/Aufsprung zu C zu
> finden

Pelles C finde ich zum üben ganz gut

von Sebastian V. (sebi_s)


Lesenswert?

Kurt B. schrieb:
> (für mich heisst alles was ich brauche um den Text auf den Schirm zu
> bringen Compiler, was das im einzelnen ist das versuche ich
> rauszukriegen)

Der Compiler ist das Programm, welches den Quellcode zu einem 
ausführbaren Programm übersetzt (etwas vereinfacht). Außer einem 
Compiler brauchst du dann noch einen Editor in welchem du den Quellcode 
schreibst, aber das kann so ziemlich alles sein. Von irgendwas ganz 
einfachem bis zur kompletten Entwicklungsumgebung mit "klicki-bunti" 
Features. Was dir lieber ist musst du selbst wissen. Da hat sowieso 
jeder seine persönlichen Vorlieben.

von xyz (Gast)


Lesenswert?

Kurt B. schrieb:
> Oliver S. schrieb:
>> Kurt sucht einen C-Compiler.
>>
>> Dussel schrieb:
>>> Visual-C++
>>
>> ist da leider keine Lösung. C-Compiler wird von MS kaum
>> weiterentwickelt, und ist entsprechend zurückgebleiben. MS konzentriert
>> sich rein auf den C++-Compiler.
>>
>> Und nein, daß ist nicht das gleiche, und es ist auch nicht der selbe
>> Compiler.
>>
>> Und da der Sinn der ganzen Übung später mal die AVR-Programmierung ist,
>> die sowieso auf dem gcc voraussetzt, warum nicht gleich gcc.
>>
>> Die Vorstellung, Programmieren ginge ohne selber denken nur mit
>> out-of-the box clicki-bunti-tools, ist eh realitätsfremd.
>>
>
> Hallo Leute, erstmal bin ich ein wenig erschlagen, so viele Begriffe die
> mir nichts sagen, ich nicht kenne.
>
> Mein Einstieg in C wäre so angedacht.
> Erstmal "Hallo hier bin ich", und einen Zähler der hochzählt, auf den
> PC-Schirm bringen. (mit Hilfe des vorhandenen Buches).
> Klappt das einigermassen dann der Sprung um AVR
>
> Wie die grob funktionieren ist mir bekannt (BASCOM und ein wenig
> Hardwareverständnis), es geht also darum den Übergang/Aufsprung zu C zu
> finden und mit einem Auge dann auf die AVRs rüber zu schielen.
>
> (für mich heisst alles was ich brauche um den Text auf den Schirm zu
> bringen Compiler, was das im einzelnen ist das versuche ich
> rauszukriegen)
>
>  Kurt

Wenn es nur Konsole sein soll (DOS-Prompt) nimm den GCC der ist dann 
auch beim AVR mit makefile usw. identisch.
Kannst Du sogar so als crosscompiler einrichten das ein einfaches Flag 
von PC auf AVR umschaltet.
Nur bedenke das ein printf für Textausgabe beim PC nicht so zuschlägt 
(Speichertechnisch) wie beim AVR.
Einen Texteditor mit Syntaxhervorhebung ist z.B. der ProgrammersNotepad 
der beim WinAVR = AVR-GCC mit dabei ist.
Programmiert wird dann der AVR via avrdude und den makefile 
Einstellungen.
Da mußt Du Dich etwas mehr einarbeiten als beim AVR-Studio und 
MS-Visual-Studio.
Du kannst aber auch mit etwas mehr klicken in Visual-Studio den AVR oder 
GCC compiler einbinden.
Allerdings machen makefiles mehr Sinn, da sie direkter sind.
Lade Dir einfach mal alle runter und teste was Dir am besten gefällt:

http://winavr.sourceforge.net/download.html
http://www.atmel.com/tools/atmelstudio.aspx
https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
http://www.qt.io/download/

Sind alle Freeware.

von Entwickler (Gast)


Lesenswert?

>>Was einzig wahre ist: Linux + makefile + kate + git + bash + gcc
>>(mingw).

hust

s/kate/vim/

:)

von Rolf M. (rmagnus)


Lesenswert?

Entwickler schrieb:
>>>Was einzig wahre ist: Linux + makefile + kate + git + bash + gcc
>>>(mingw).
>
> hust
>
> s/kate/vim/
>
> :)

Jo, aber direkt Makefiles mach ich dann auch nicht. CMake darf's dann 
schon sein. Und statt git nehme ich noch svn. Das verstehe ich 
wenigstens ;-)

von Kurt B. (kurt-b)


Lesenswert?

xyz schrieb:
> Ja was willst Du nun programmieren den PC oder den AVR ?
> PC z.B. MS-Visual-Studio oder QT-Creator.
> AVR z.B. Atmelstudio oder AVR-GCC (WinAVR)

Also, ich hab mir das ATMEL-Studio6 (10.0) runtergeladen, jetzt kommt 
nach Aufruf: die Start Page AtmelStudio, der Reiter: Get Started ist 
aktiv.

Bereitgelegt habe ich mir einen MEGA 328P auf Arduino Pro Mini auf einer 
Platine, dieser hat eine LED an PB5.
Diese möchte ich mit Hilfe von C zum blinken animieren, vorhanden ist 
ein Proger der über USB-COM mit Hilfe eines STK500 native Driver den 
Mega progen kann.
Mit BASCOM habe ich das im Griff, somit kann ich jederzeit kontrollieren 
ob die Hardware in Ordnung ist.

Was muss ich dem Atmel Studio nun alles sagen damit es mir den Editor 
bereitstellt damit ich die ersten Zeilen reinschreiben kann?


 Kurt

von Sebastian V. (sebi_s)


Lesenswert?

Kurt B. schrieb:
> Was muss ich dem Atmel Studio nun alles sagen damit es mir den Editor
> bereitstellt damit ich die ersten Zeilen reinschreiben kann?

Neues Projekt erstellen, richtigen Mikrocontroller auswählen und schon 
gehts los.

von xyz (Gast)


Lesenswert?

Kurt B. schrieb:
> xyz schrieb:
>> Ja was willst Du nun programmieren den PC oder den AVR ?
>> PC z.B. MS-Visual-Studio oder QT-Creator.
>> AVR z.B. Atmelstudio oder AVR-GCC (WinAVR)
>
> Also, ich hab mir das ATMEL-Studio6 (10.0) runtergeladen, jetzt kommt
> nach Aufruf: die Start Page AtmelStudio, der Reiter: Get Started ist
> aktiv.
>
> Bereitgelegt habe ich mir einen MEGA 328P auf Arduino Pro Mini auf einer
> Platine, dieser hat eine LED an PB5.
> Diese möchte ich mit Hilfe von C zum blinken animieren, vorhanden ist
> ein Proger der über USB-COM mit Hilfe eines STK500 native Driver den
> Mega progen kann.
> Mit BASCOM habe ich das im Griff, somit kann ich jederzeit kontrollieren
> ob die Hardware in Ordnung ist.
>
> Was muss ich dem Atmel Studio nun alles sagen damit es mir den Editor
> bereitstellt damit ich die ersten Zeilen reinschreiben kann?
>
>
>  Kurt

Wenn Du einen Arduino hast müßte doch eigentlich alles direkt via USB 
und der Arduino Suite gehen ?
Oder hast Du sinnfrei einen Mega328p mit geflashtem Arduino geholt ?
Was auch immer wie schon erwähnt den passenden Programmer (STK500) und 
den richtigen AVR auswählen wenn Du ein neues Projekt erstellst.
Dann lies mal sicherheitshalber das Flash aus.
Wenn das klappt ist alles richtig eingestellt.
Danach den Testcode im AtmelStudio reintippen, compilieren und wenn 
keine Fehler auftreten flashen.
Viel Spaß mit der blinkenden LED, schade das Weihnachten vorbei ist.

von bluppdidupp (Gast)


Lesenswert?

Matthias H. schrieb:
> - OpenMP ist bei Version 2.0 stehen geblieben (aktuell Version 4.0) -
> gilt auch für VS015!

Da besteht erstaunlicherweise scheinbar auch kein so großer Bedarf - Hat 
aktuell kaum Votes:
http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6216349-update-your-openmp-support-to-openmp-3-1

von Matthias H. (hallamen)


Lesenswert?

Sebastian V. schrieb:
> Matthias H. schrieb:
>> Nanana, immer langsam mit den jungen Pferden:
>> - Soweit ich weiß, sind variable-length arrays nicht Teil des C++
>> Standards, auch vom VS werden sie nicht unterstützt (vom GCC schon)
>> https://msdn.microsoft.com/en-us/library/zb1574zs(v=vs.140).aspx
>
> Ich hab ja auch nichts anderes behauptet.

Mir ist auch grad aufgefallen, das ich das "nicht" überlesen habe, sorry 
dafür :)

bluppdidupp schrieb:
> Da besteht erstaunlicherweise scheinbar auch kein so großer Bedarf - Hat
> aktuell kaum Votes:
> 
http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6216349-update-your-openmp-support-to-openmp-3-1

Da hast du leider recht. Akademische Software läuft manchmal nicht auf 
Windows (und zwar aus diesem und ähnlichen Gründen). Zum Glück hat sich 
mit C++11 punkto Parallelisierung einiges getan, dodass OpenMP fast 
gänzlich durch Sprachfeatures ersetzt werden kann.

von Vlad T. (vlad_tepesch)


Angehängte Dateien:

Lesenswert?

https://xkcd.com/378/
> Real programmers set the universal constants at the start
> such that the universe evolves to contain the disk with the
> data they want.


Atmel Studio basiert auf Visual Studio, kann also nicht verkehrt sein, 
sich an C mit dem Visual Studio Express zu gewöhnen und ein paar 
Konsolenprogramme als Programmierübungen zu machen.

https://projecteuler.net/ bietet sich für sowas zB an

: Bearbeitet durch User
von Peter (Gast)


Lesenswert?

Hallo Vlad,

bist Du zufällig mit dem hier verwandt, Du alter Blutsauger?
https://de.wikipedia.org/wiki/Vlad_III._Dr%C4%83culea

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Kurt B. schrieb:
> Was muss ich dem Atmel Studio nun alles sagen damit es mir den Editor
> bereitstellt damit ich die ersten Zeilen reinschreiben kann?

Kann man denn da kein Beispielprojekt öffnen?

Deinen Programmer musst du wohl als STK500 explizit einbinden, denn den
kann er nicht automatisch erkennen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.