2015-02-17 7 views
6

Das könnte eine sehr dumme Frage sein, aber ich frage mich, warum der Rust-Compiler (geschrieben in Rust selbst) einen C++ - Compiler benötigt.Warum brauche ich einen C++ - Compiler, um Rust zu kompilieren?

Ich meine, ein vorkompilierter Rust-Compiler aus der Distribution sollte reichen, oder?

+0

Ja, aber es hat keinen Sinn, den Rost-Compiler mit einem heruntergeladenen Rost-Compiler zu kompilieren –

+1

@joris_van_winden: Eigentlich ist das der einzige Weg, den Rust-Compiler zu erstellen, wie er in Rust geschrieben ist. Die Sache ist, dass Sie die neueste Version des Rust-Compilers mit einer älteren Version erstellen können. Es ist nicht anders mit dem GCC, es ist in C geschrieben, so dass Sie einen C-Compiler (C++ in neueren Versionen) benötigen, um es zu bauen. – rodrigo

Antwort

12

Es ist eigentlich eine vernünftige Frage. Die Antwort ist, dass zur Zeit die Rostquelle eine leicht gepatchte Version von LLVM enthält, LLVM ist in C++ geschrieben, und das ist nicht in binärer Form verteilt. Sie brauchen also einen C++ - Compiler, um das zu erstellen.

+0

Also konnte ich llvm-cbe (https://github.com/draperlaboratory/llvm-cbe) nicht verwenden, um Rost zu c zu kompilieren und es dann zu einem os ohne einen C++ - Compiler zu portieren, richtig? –

+2

@GiacomoTesio: Nun, das könnte dir gelingen. Aber ich denke, Sie haben bessere Chancen, Rust von einer unterstützten Plattform aus zu kompilieren. – rodrigo

+0

@GiacomoTesio Die Plattform, die keinen C++ - Compiler hat, ist ein schlechter Grund, da sowohl rustc als auch LLVM eine gute Kreuzkompilierung unterstützen. Die Plattform, die kein LLVM-Backend hat, wäre ein besserer Grund, aber ich bin sehr zweifelhaft, ob das gut funktionieren würde. – delnan

Verwandte Themen