2012-02-15 11 views
5

jestem na Debianie i zgodnie z instrukcjami kompilacji z wiki Rust: https://github.com/mozilla/rust/wiki/Doc-getting-startedNie można skompilować Rust

Próbowałem kilka razy, ale zawsze kończy się następujący błąd:

llvm[3]: Compiling opt.cpp for Release+Asserts build 
make[3]: *** No rule to make target `/home/user/rust/llvm/x86_64-unknown-linux- 
gnu/tools/lib/libLLVMipo.a', needed by `/home/user/rust/llvm/x86_64-unknown- 
linux-gnu/Release+Asserts/bin/opt'. Stop. 
make[3]: Leaving directory `/home/user/rust/llvm/x86_64-unknown-linux-gnu/ 
tools/opt' 
make[2]: *** [opt/.makeall] Error 2 
make[2]: Leaving directory `/home/user/rust/llvm/x86_64-unknown-linux-gnu/tools' 
make[1]: *** [all] Error 1 
make[1]: Leaving directory `/home/user/rust/llvm/x86_64-unknown-linux-gnu' 
make: *** [/home/user/rust/llvm/x86_64-unknown-linux-gnu/Release+Asserts/ 
bin/llvm-config] Error 2 

Edytuj:

Problem występuje tylko w środowisku debootstrap/chroot, a nie w pełnej instalacji Debiana.

+0

Być może miałem podobny problem, myślę, że naprawiłem to zmieniając mój domyślny python (znajdź twój przez 'który python') python2 zamiast python3 (llvm używa python2 do budowania) – nak

+0

Czy to się nadal zdarza? Próbowałem w chroot (używając 'systemd-nspawn') i nie mogłem odtworzyć. – Tshepang

Odpowiedz

3

Jeśli odnosimy się do tych instrukcji:

git clone git://github.com/mozilla/rust.git 
cd rust 
mkdir build 
cd build 
../configure 
make check 

... Widzę co najmniej jedno źle z nimi. Spróbuj to zamiast:

git clone git://github.com/mozilla/rust.git 
cd rust 
git submodule update --init 
./configure 
make 
sudo make install 

git submodule update --init jest konieczne, aby zainicjować submodules rdza, która obejmować LLVM i libuv.

1

git submodule update nie powinna być konieczna, ponieważ skrypt configure Rust próbuje poradzić sobie, ale jeśli uruchomić git submodule status i zobaczyć zdań o zmianach src/libuv lub src/llvm może to być problemem.

Nie widziałem tego błędu wcześniej i nie mogę stwierdzić, co jest nie tak z tego fragmentu. Prawdopodobnie uruchom make clean-all, a następnie osiągnij pełną wydajność pliku ./configure && make, a także zawartość pliku config.mk. Ponadto, prawdopodobnie dostaniesz więcej uwagi z tym pytaniem na tropiku błędu rdzy: http://github.com/mozilla/rust/issues