LLVM-sys will nicht funktionieren?
Servus
Ich sitz seid stunden daran LLVM-sys für Rust zum laufen zu bekommen. Irgendwas mach ich falsch aber ich weiss nichts was.
Ich nutze MacOS Ventura
Als allerstes wie in den Docs vorgeschlagen habe ich llvmenv genutzt um llvm 13.0.0 zuinstallieren. Danach sagten die, dass man die ENV variable mit dem name "LLVM_SYS_160_PREFIX" auf den wert setzen den man bekommt wenn man llvmenv prefix eingibt
Also was ich getan habe:
$ llvmenv prefix
/Users/mainUser/Library/Application Support/llvmenv/13.0.0
Dann hab ich zuerst wie vorgeschalgen in den Docs folgenden command verwendet:
$ export LLVM_SYS_160_PREFIX=/Users/mainUser/Library/Application Support/llvmenv/13.0.0
export: not valid in this context: Support/llvmenv/13.0.0
Wodurch ich einen fehler bekommen habe, da logischerweise keine whitespaces im Path zugelassen sind. Darum habbe ich den teil mit dem Application Support in anführungzeichen gesetzt:
$ export LLVM_SYS_160_PREFIX=/Users/mainUser/Library/"Application Support"/llvmenv/13.0.0
und dann keine response mehr bekommen. So hab ich angenommen, dass es funktioniert was es natürlich nicht tat.
error: No suitable version of LLVM was found system-wide or pointed
to by LLVM_SYS_160_PREFIX.
Consider using `llvmenv` to compile an appropriate copy of LLVM, and
refer to the llvm-sys documentation for more information.
llvm-sys: https://crates.io/crates/llvm-sys
llvmenv: https://crates.io/crates/llvmenv
--> /Users/mainUser/.cargo/registry/src/github.com-1ecc6299db9ec823/llvm-sys-160.0.2/src/lib.rs:490:1
|
490 | / std::compile_error!(concat!(
491 | | "No suitable version of LLVM was found system-wide or pointed
492 | | to by LLVM_SYS_",
493 | | env!("CARGO_PKG_VERSION_MAJOR"),
... |
500 | | llvmenv: https://crates.io/crates/llvmenv"
501 | | ));
| |__^
Nachdem ich dann printenv genutzt habe musste ich feststellen, dass das Value nicht gespeichert war. Danach nutze ich eine Methode die ich im Internet fand bei dem man direkt in ~/.zshrc reinschreib und dann mit source speichert. Nachdem ich diese Methode verwendet habe und printenv in einem anderen Terminal genutzt habe konnte ich tatsächlich den Wert finden.
$ printenv | grep "LLVM_SYS_160_PREFIX"
LLVM_SYS_160_PREFIX=/Users/mainUser/Library/Application Support/llvmenv/13.0.0
Ich dachte es funktioniert alles. Leider nicht gleicher fehler wie zuvor. Dann wurde mir gesagt ich soll mit cargo clean aufräumen und erneut builden. Hab ich gemacht funktioniert nicht.
Meine frage:
Was mach ich falsch? Was überseh ich?
Cargo.toml:
[package]
name = "jc"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
llvm-sys = "160.0.2"
Danke
1 Antwort
Es sieht so aus, als ob das Problem darin besteht, dass das LLVM-System nicht gefunden werden kann. Ein möglicher Ansatzpunkt wäre zu überprüfen, ob LLVM korrekt installiert ist und ob der Pfad korrekt eingerichtet ist.
Hier sind einige Schritte, die du ausprobieren könntest:
- Überprüfen, ob LLVM korrekt installiert ist: Du könntest überprüfen, ob die Installation von LLVM richtig durchgeführt wurde. Eine Möglichkeit wäre, im Terminal den Befehl "llvm-config --version" auszuführen und sicherzustellen, dass die Version angezeigt wird.
- Überprüfen, ob der Pfad korrekt eingerichtet ist: Stelle sicher, dass der Pfad in der Umgebungsvariablen "LLVM_SYS_160_PREFIX" korrekt eingerichtet ist. Du könntest das überprüfen, indem du im Terminal den Befehl "echo $LLVM_SYS_160_PREFIX" ausführst und sicherstellst, dass der Pfad korrekt angezeigt wird.
- Neustart von Cargo: Du könntest versuchen, Cargo neu zu starten, um sicherzustellen, dass die Umgebungsvariable korrekt geladen wird.
- Überprüfen, ob die LLVM-Version mit der von llvm-sys unterstützten Version übereinstimmt: Stelle sicher, dass die installierte LLVM-Version mit der von llvm-sys unterstützten Version übereinstimmt. Du könntest dies überprüfen, indem du auf der Seite von llvm-sys nachsiehst, welche Version von LLVM unterstützt wird.
- Überprüfen, ob llvm-sys als Abhängigkeit in der Cargo.toml-Datei korrekt angegeben ist: Stelle sicher, dass llvm-sys korrekt als Abhängigkeit in der Cargo.toml-Datei angegeben ist. Es könnte sein, dass es hier ein Problem gibt und das Programm die Abhängigkeit nicht richtig findet.
Ich hoffe, diese Schritte helfen dir, das Problem zu lösen.
- Hast du meine frage mit ChatGPT beantworten lassen?
- Das weiss ich tatsächlich alles bereits das musst du mir nicht nochmal erklären. Ich bräuchte eine lösung nicht eine erklärung