Privat-Rechner — MacOS
Zum Programmieren auf dem Mac, ist es am einfachsten XCode (für den mitgelieferten Compiler) zu installieren:
- XCode runterladen und installieren (Kann etwas dauern, da es vergleichweise groß ist)
- VS Code als Installer für den Mac runterladen und installieren
Nach der Installation von Xcode öffnen Sie das MacOS-Terminal (Terminal in die Spotlight-Suche eingeben) und führen Sie g++
aus. Es kann sein, dass Sie hier den Befehl xcode-select --install
aus. Bestätigen Sie entsprechende Rückfragen.
Anmerkung: Wenn Sie das erste Mal mit Visual Studio Code arbeiten, könnten Pop-Ups kommen, in welchen Sie VS Code Zugriff auf Dateien geben müssen. Diese Fragen sind normal und müssen bestätigt werden.
Die Einreichtung von VS Code ist in der Hauptanleitung beschrieben.
FAQ und Probleme
Im Folgenden finden Sie Probleme, die häufig unter MacOS auftreten. Wenn Sie hier keine Lösung für ihr Problem finden, dann schauen Sie auch bei den Allgemeinen FAQ.
MacOS: Compilieren mit BitmapPlusPlus.hpp funktioniert nicht
Problem:
Erster Compiler-Fehler ist 'constexpr does not name a type'
Lösung:
g++
benutzt einen alten C++ Standard, beim Compilieren muss g++ --std=c++20 main.cpp
angegeben werden. Dies kann auch in .vscode\tasks.json eingetragen werden und muss für jedes neue Programm entsprechend gemacht werden. Für noch ältere Systeme reicht auch der noch ältere C++-Standard aus 2011 für BitmapPlusPlus.hpp
- also g++ --std=c++11 main.cpp
MacOS: Programm kann keine Eingaben lesen
Problem:
Unter MacOS kann ein Programm, welches mit der Standard-Konfiguration gestartet wird keine Eingaben von der Kommandzeile lesen.
Lösung:
Es gibt zwei Dateien, die das Bauen und Ausführen von C++
-Dateien in Visual Studio Code regelt. Diese liegen im Projektordner unter .vscode
.
Die Datei tasks.json
regelt den Übersetzungsprozess. Der hier definierte Task wird für die Ausführung benötigt.
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ Aktive Datei kompilieren",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"${fileDirname}/*.cpp",
"-o",
"${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Vom Debugger generierte Aufgabe."
}
],
"version": "2.0.0"
}
Die Datei launch.json
regelt die Ausführung des Programms:
{
"version": "0.2.0",
"configurations": [
{
"name": "g++ - Bauen und Ausführen der aktiven Datei.",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "lldb",
"preLaunchTask": "C/C++: g++ Aktive Datei kompilieren"
}
]
}
Wichtig ist hierbei, dass das Attribut externalConsole
den Wert true
hat, damit das Programm in einer externen Konsole geöffnet wird. Diese externe Konsole bietet dann auch die Option einer Ein- und Ausgabe mit Hilfe des Terminals.
Achtung: Unter MacOS wird die launch.json
oft nicht automatisch im .vscode
Ordner generiert. Um also externalConsole
auf true
zu setzen muss diese Datei erst erstellt werden. Dafür klickt man auf das Zahnrad rechts neben dem Debug/Run-Knopf (mit dem Ihr euer Programm startet) und wählt - wie bei der ersten Programmausführung - die Option mit ...g++.exe build and debug...
im Namen aus. Nun solltet Ihr eine launch.json
in eurem .vscode
Ordner haben, die Ihr bearbeiten könnt.