Как исправить ошибку Rust «Компоновщик «cc» не найден» в Linux
Сегодня я тестировал инструмент использования пропускной способности сети под названием Band Which на своей виртуальной машине Ubuntu. Этот инструмент разработан на языке программирования Rust, поэтому я попытался установить его с помощью менеджера пакетов Cargo. В середине процесса компиляции я столкнулся со следующей ошибкой:
Updating crates.io index
Installing bandwhich v0.6.0
Compiling libc v0.2.66
error: linker `cc` not found
|
= note: No such file or directory (os error 2)
error: aborting due to previous error
error: failed to compile `bandwhich v0.6.0`, intermediate artifacts can be found at `/tmp/cargo-installrqSeTB`
Caused by:
could not compile `libc`.
To learn more, run the command again with --verbose.
Как видно из приведенного выше вывода, Cargo не удалось найти программу-компилятор cc для компиляции данного приложения. Поскольку в Rust пока нет собственного компоновщика, вам необходимо установить компилятор C, например gcc
, который будет выступать в качестве компоновщика.
Чтобы установить gcc в Ubuntu, просто запустите:
sudo apt install build-essential
Если вы используете другую ОС Linux, перейдите по следующей ссылке, чтобы установить инструменты разработки, которые включают в себя необходимые приложения, такие как компиляторы GNU GCC C/C++, make, отладчики и т. д.
- Как установить инструменты разработки в Linux
После установки gcc ошибка «linker cc not Found
» исчезла! И тогда я смогу без проблем установить приложение.
Если вы по-прежнему получаете ту же ошибку, даже если GCC уже установлен, установите cmake
и повторите попытку. Cmake доступен в официальных репозиториях большинства дистрибутивов Linux.
Чтобы установить Cmake в Arch Linux, включите репозиторий [Extra]
и запустите:
sudo pacman -S cmake
В Debian, Ubuntu, Linux Mint:
sudo apt install cmake
В Fedora, RHEL, CentOS, AlmaLinux и Rocky Linux:
sudo dnf install cmake
В openSUSE:
sudo zypper install cmake
Установка gcc решила проблему для меня.
Обновление:
В NixOS эта проблема не решится даже после установки «GCC
» и «make
». Как упоминалось в этой теме GitHub, вам следует попробовать это с помощью nix-shell вместо nix-env.
Удачи!
Ресурс:
- https://users.rust-lang.org/t/could-not-exec-the-linker-cc-no- such-file-or-directory/8614