Modul:Vorlage:CompilerExplorerLink/Doku
Diese Vorlage erzeugt die URL für einen Link zum Compiler Explorer.
- Dateinamen und Inhalt jeder einzelnen verwendeten Datei bilden ein Schlüssel-Wert-Paar, wobei der Dateiname der Schüssel und der Dateiinhalt der Wert ist. Dabei ist zu beachten, dass Punkte in den Dateinamen durch Unterstriche (_) zu ersetzen sind, da es sonst zu einer Fehlermeldung kommt. Pipes (|) trennen die einzelnen Dateien voneinader. Wichtig: Bei mehr als einer Datei muss die Hauptdatei example.c heißen bzw. CMakeLists.txt, wenn es sich im ein CMake-Projekt handelt.
- Doppelte geschweifte Klammern ({{ und }}) sind innerhalb des Quellcodes nicht gestattet und müssen immer durch ein Leerzeichen voneinander getrennt werden ({ { bzw. } }), da sie sonst als Anfang oder Ende einer Wiki-Vorlage interpretiert werden. Deshalb muss auch nach eine schließenden geschweiften Klammer am Ende einer Datei ein Leerzeichen oder Zeilenumbruch gesetzt werden.
- Pipes (|) müssen im Quellcode durch {{!}} ersetzt werden, da sie sonst als Feldtrenner interpertiert werden.
- Für den Executor Frame gibt es folgende optionale Parameter, die ebenfalls Schlüssel-Wert-Paare bilden, die ebenfalls durch Pipes voneinander getrennt werden:
- execArgsPanelShown gibt an, ob die Execution Arguments angezeigt werden (standardmäßig false)
- execCompilationPanelShown gibt an, ob der Compiler und die Compiler Options angezeigt werden (standardmäßig true)
- execCompiler enthält den Namen des verwendeten Compilers (standardmäßig "cg122"):
- Für GCC-Compiler beginnt der Name mit cg gefolgt von der Versionsnummer ohne Punkte (also steht cg122 für GCC 12.2)
- Eine vollständige Liste mit anderen möglichen C-Compilern kann man den Dateien c.amazon.properties und c.default.properties im GitHub Repositiory des Compiler Explorers entnehmen.
- execCompilerOutputShown gibt an, ob der Compiler Output angezeigt wird (standardmäßig true)
- execArgs enthält die Execution Arguments (standardmäßig ___)
- execStdin enthät den Stdin (standardmäßig "" (ein leerer String))
- execCompilerOptions wird für die Compiler-Optionen verwendet (standardmäßig "" (ein leerer String))
- execStdinPanelShown gibt an, ob das Stdin angezeigt wird (standardmäßig false)
- execLineWrap gibt an, ob es einen automatischen Zeilenumbruch gibt (standardmäßig false)
- Wenn man CMake verwendet, sind die folgenden Optionen wichtig, die auch wieder Schlüssel-Wert-Paare bilden, die durch Pipes voneinander getrennt werden:
- isCMakeProject gibt an, ob es sich im ein CMake-Projekt handelt (standardmäßig false)
- CMakeArgs enhält die CMake Arguments (standardmäßig "" (ein leerer String))
- CMakeCustomOutputFilename enthält den Namen der Ausgabedatei (standardmäßig "" (ein leerer String))
- Folgende Bibliotheken sind dem Compiler Explorer bekannt und können ebenfalls verwendet werden, in dem man aus Schlüssel-Werte-Paare aus den Namen und der Versionsnummer (mögliche Versionen in Klammern angegeben) bildet: cs50 (910), hedley (v12), libuv (1370,1381), lua (535,540), nsimd(22-x86_64,22-arm,22-arm64,310-x86_64,310-arm,310-arm64), openssl (111c,111g), python (359,3610,376,381), simde (trunk), curl(7831), sqlite (3400).
Ein typischer Aufruf dieser Vorlage sieht wie folgt aus:
{{Vorlage:CompilerExplorerLink|main_c=#include <stdio.h>
void main(){
printf("Hello World!");
} }}
Und erzeugt folgenden HTML-Code:
https://www.godbolt.org/#g:!((g:!((g:!((h:codeEditor,i:(filename:example.c,fontScale:14,fontUsePx:'0',j:1,lang:___c,selection:(endColumn:1,endLineNumber:1,positionColumn:1,positionLineNumber:1,selectionStartColumn:1,selectionStartLineNumber:1,startColumn:1,startLineNumber:1),source:'%23include+%3Cstdio%2Eh%3E%0Avoid+main%28%29%7B%0A++++printf%28%22Hello+World!!%22%29%3B%0A%7D'),l:'5',n:'0',o:example.c,t:'0')),header:(),k:50,l:'4',m:100,n:'0',o:%27%27,s:0,t:'0'),(g:!((g:!((h:tree,i:(cmakeArgs:%27%27,compilerLanguageId:___c,customOutputFilename:%27%27,files:!((editorId:1,fileId:1,filename:example.c,g:%27%27,isIncluded:'0',isMainSource:'0',isOpen:'0',langId:%27%27)),isCMakeProject:'1',j:1,newFileId:2),l:'5',n:'0',o:'Tree+%231',t:'0')),header:(),l:'4',m:50,n:'0',o:%27%27,s:0,t:'0'),(g:!((h:executor,i:(argsPanelShown:'1',compilationPanelShown:'0',compiler:cg122,compilerOutShown:'0',execArgs:___,execStdin:%27%27,fontScale:14,fontUsePx:'0',j:1,lang:___c,libs:!(),options:%27%27,source:'1',stdinPanelShown:'1',tree:1,wrap:'1'),l:'5',n:'0',o:'Executor+(C,+Tree+%231)',t:'0')),header:(),k:50,l:'4',m:50,n:'0',o:%27%27,s:0,t:'0')),k:50,l:'3',n:'0',o:%27%27,s:0,t:'0')),l:'2',n:'0',o:%27%27,t:'0')),version:4
Diese URL kann man dann in einem Link einfügen: Hello World!
Diese Seite ist die Dokumentations-Unterseite von Modul:Vorlage:CompilerExplorerLink. Näheres unter Wikipedia:Lua/Seitenorganisation und Dokumentation. |