Rustのコンパイルで`error: linker cc not found`のエラーが出た場合の対処法

Rust

わたしはLinuxのDebian環境でRustをインストールして初めてcargo runでプロジェクトコンパイルした際にこのエラーメッセージが出ました。

実行環境

Debian 12.4

実際のメッセージ

butan@debian:~/projects/hello/src$ cargo run
   Compiling hello v0.1.0 (/home/butan/projects/hello)
error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)

error: could not compile `hello` (bin "hello") due to previous error
butan@debian:~/projects/hello/src$ 

`cc`が見つからないというメッセージです。

対処方法

gccコンパイラをインストールすることで問題は解決します。

Debian系のLinuxディストリビューションなら

apt install -y gcc

をターミナルで実行します。

Red Hat系のLinuxだと

yum install -y gcc

となります。

上記コマンドは先頭にsudoをつけて実行が必要である場合が多いです。
例)sudo apt install -y gcc

実際のイメージ

エラー出力後にgccをインストールして再度cargo runした場合のターミナルイメージです。

butan@debian:~/projects/hello/src$ cargo run
   Compiling hello v0.1.0 (/home/butan/projects/hello)
error: linker `cc` not found
  |
  = note: No such file or directory (os error 2)

error: could not compile `hello` (bin "hello") due to previous error
butan@debian:~/projects/hello/src$ sudo apt install gcc -y
[sudo] butan のパスワード:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  cpp cpp-12 gcc-12 libabsl20220623 libaom3 libasan8 libatomic1 libavif15 libc-dev-bin libc-devtools libc6-dev
  libcc1-0 libcrypt-dev libdav1d6 libde265-0 libgav1-1 libgcc-12-dev libgd3 libgomp1 libheif1 libisl23 libmpc3
  libnsl-dev librav1e0 libsvtav1enc1 libtirpc-dev libubsan1 libx265-199 libxpm4 libyuv0 linux-libc-dev manpages-dev
  rpcsvc-proto
提案パッケージ:
  cpp-doc gcc-12-locales cpp-12-doc gcc-multilib make autoconf automake libtool flex bison gdb gcc-doc gcc-12-doc
  glibc-doc libgd-tools
以下のパッケージが新たにインストールされます:
  cpp cpp-12 gcc gcc-12 libabsl20220623 libaom3 libasan8 libatomic1 libavif15 libc-dev-bin libc-devtools libc6-dev
  libcc1-0 libcrypt-dev libdav1d6 libde265-0 libgav1-1 libgcc-12-dev libgd3 libgomp1 libheif1 libisl23 libmpc3
  libnsl-dev librav1e0 libsvtav1enc1 libtirpc-dev libubsan1 libx265-199 libxpm4 libyuv0 linux-libc-dev manpages-dev
  rpcsvc-proto
アップグレード: 0 個、新規インストール: 34 個、削除: 0 個、保留: 0 個。
36.5 MB のアーカイブを取得する必要があります。
この操作後に追加で 111 MB のディスク容量が消費されます。
取得:1 http://deb.debian.org/debian bookworm/main armhf libisl23 armhf 0.25-1 [539 kB]
取得:2 http://deb.debian.org/debian bookworm/main armhf libmpc3 armhf 1.3.1-1 [42.9 kB]
取得:3 http://deb.debian.org/debian bookworm/main armhf cpp-12 armhf 12.2.0-14 [7,274 kB]
取得:4 http://deb.debian.org/debian bookworm/main armhf cpp armhf 4:12.2.0-3 [6,832 B]
取得:5 http://deb.debian.org/debian bookworm/main armhf libcc1-0 armhf 12.2.0-14 [32.9 kB]
取得:6 http://deb.debian.org/debian bookworm/main armhf libgomp1 armhf 12.2.0-14 [97.0 kB]
取得:7 http://deb.debian.org/debian bookworm/main armhf libatomic1 armhf 12.2.0-14 [7,016 B]
取得:8 http://deb.debian.org/debian bookworm/main armhf libasan8 armhf 12.2.0-14 [2,114 kB]
取得:9 http://deb.debian.org/debian bookworm/main armhf libubsan1 armhf 12.2.0-14 [855 kB]
取得:10 http://deb.debian.org/debian bookworm/main armhf libgcc-12-dev armhf 12.2.0-14 [742 kB]
取得:11 http://deb.debian.org/debian bookworm/main armhf gcc-12 armhf 12.2.0-14 [14.2 MB]
取得:12 http://deb.debian.org/debian bookworm/main armhf gcc armhf 4:12.2.0-3 [5,224 B]
取得:13 http://deb.debian.org/debian bookworm/main armhf libabsl20220623 armhf 20220623.1-1 [365 kB]
取得:14 http://deb.debian.org/debian bookworm/main armhf libaom3 armhf 3.6.0-1 [1,369 kB]
取得:15 http://deb.debian.org/debian bookworm/main armhf libdav1d6 armhf 1.0.0-2 [256 kB]
取得:16 http://deb.debian.org/debian bookworm/main armhf libgav1-1 armhf 0.18.0-1+b1 [284 kB]
取得:17 http://deb.debian.org/debian bookworm/main armhf librav1e0 armhf 0.5.1-6 [514 kB]
取得:18 http://deb.debian.org/debian bookworm/main armhf libsvtav1enc1 armhf 1.4.1+dfsg-1 [893 kB]
取得:19 http://deb.debian.org/debian bookworm/main armhf libyuv0 armhf 0.0~git20230123.b2528b0-1 [85.5 kB]
取得:20 http://deb.debian.org/debian bookworm/main armhf libavif15 armhf 0.11.1-1 [84.8 kB]
取得:21 http://deb.debian.org/debian bookworm/main armhf libc-dev-bin armhf 2.36-9+deb12u3 [43.9 kB]
取得:22 http://deb.debian.org/debian bookworm/main armhf libde265-0 armhf 1.0.11-1+deb12u1 [143 kB]
取得:23 http://deb.debian.org/debian bookworm/main armhf libx265-199 armhf 3.5-2+b1 [580 kB]
取得:24 http://deb.debian.org/debian bookworm/main armhf libheif1 armhf 1.15.1-1 [183 kB]
取得:25 http://deb.debian.org/debian bookworm/main armhf libxpm4 armhf 1:3.5.12-1.1+deb12u1 [42.4 kB]
取得:26 http://deb.debian.org/debian bookworm/main armhf libgd3 armhf 2.3.3-9 [103 kB]
取得:27 http://deb.debian.org/debian bookworm/main armhf libc-devtools armhf 2.36-9+deb12u3 [53.8 kB]
取得:28 http://deb.debian.org/debian bookworm/main armhf linux-libc-dev armhf 6.1.66-1 [1,866 kB]
取得:29 http://deb.debian.org/debian bookworm/main armhf libcrypt-dev armhf 1:4.4.33-2 [125 kB]
取得:30 http://deb.debian.org/debian bookworm/main armhf libtirpc-dev armhf 1.3.3+ds-1 [182 kB]
取得:31 http://deb.debian.org/debian bookworm/main armhf libnsl-dev armhf 1.3.0-2 [62.1 kB]
取得:32 http://deb.debian.org/debian bookworm/main armhf rpcsvc-proto armhf 1.4.3-1 [58.7 kB]
取得:33 http://deb.debian.org/debian bookworm/main armhf libc6-dev armhf 2.36-9+deb12u3 [1,266 kB]
取得:34 http://deb.debian.org/debian bookworm/main armhf manpages-dev all 6.03-2 [2,030 kB]
36.5 MB を 7秒 で取得しました (5,107 kB/s)
パッケージからテンプレートを展開しています: 100%
以前に未選択のパッケージ libisl23:armhf を選択しています。
(データベースを読み込んでいます ... 現在 36273 個のファイルとディレクトリがインストールされています。)
.../00-libisl23_0.25-1_armhf.deb を展開する準備をしています ...
libisl23:armhf (0.25-1) を展開しています...
以前に未選択のパッケージ libmpc3:armhf を選択しています。
.../01-libmpc3_1.3.1-1_armhf.deb を展開する準備をしています ...
libmpc3:armhf (1.3.1-1) を展開しています...
以前に未選択のパッケージ cpp-12 を選択しています。
.../02-cpp-12_12.2.0-14_armhf.deb を展開する準備をしています ...
cpp-12 (12.2.0-14) を展開しています...
以前に未選択のパッケージ cpp を選択しています。
.../03-cpp_4%3a12.2.0-3_armhf.deb を展開する準備をしています ...
cpp (4:12.2.0-3) を展開しています...
以前に未選択のパッケージ libcc1-0:armhf を選択しています。
.../04-libcc1-0_12.2.0-14_armhf.deb を展開する準備をしています ...
libcc1-0:armhf (12.2.0-14) を展開しています...
以前に未選択のパッケージ libgomp1:armhf を選択しています。
.../05-libgomp1_12.2.0-14_armhf.deb を展開する準備をしています ...
libgomp1:armhf (12.2.0-14) を展開しています...
以前に未選択のパッケージ libatomic1:armhf を選択しています。
.../06-libatomic1_12.2.0-14_armhf.deb を展開する準備をしています ...
libatomic1:armhf (12.2.0-14) を展開しています...
以前に未選択のパッケージ libasan8:armhf を選択しています。
.../07-libasan8_12.2.0-14_armhf.deb を展開する準備をしています ...
libasan8:armhf (12.2.0-14) を展開しています...
以前に未選択のパッケージ libubsan1:armhf を選択しています。
.../08-libubsan1_12.2.0-14_armhf.deb を展開する準備をしています ...
libubsan1:armhf (12.2.0-14) を展開しています...
以前に未選択のパッケージ libgcc-12-dev:armhf を選択しています。
.../09-libgcc-12-dev_12.2.0-14_armhf.deb を展開する準備をしています ...
libgcc-12-dev:armhf (12.2.0-14) を展開しています...
以前に未選択のパッケージ gcc-12 を選択しています。
.../10-gcc-12_12.2.0-14_armhf.deb を展開する準備をしています ...
gcc-12 (12.2.0-14) を展開しています...
以前に未選択のパッケージ gcc を選択しています。
.../11-gcc_4%3a12.2.0-3_armhf.deb を展開する準備をしています ...
gcc (4:12.2.0-3) を展開しています...
以前に未選択のパッケージ libabsl20220623:armhf を選択しています。
.../12-libabsl20220623_20220623.1-1_armhf.deb を展開する準備をしています ...
libabsl20220623:armhf (20220623.1-1) を展開しています...
以前に未選択のパッケージ libaom3:armhf を選択しています。
.../13-libaom3_3.6.0-1_armhf.deb を展開する準備をしています ...
libaom3:armhf (3.6.0-1) を展開しています...
以前に未選択のパッケージ libdav1d6:armhf を選択しています。
.../14-libdav1d6_1.0.0-2_armhf.deb を展開する準備をしています ...
libdav1d6:armhf (1.0.0-2) を展開しています...
以前に未選択のパッケージ libgav1-1:armhf を選択しています。
.../15-libgav1-1_0.18.0-1+b1_armhf.deb を展開する準備をしています ...
libgav1-1:armhf (0.18.0-1+b1) を展開しています...
以前に未選択のパッケージ librav1e0:armhf を選択しています。
.../16-librav1e0_0.5.1-6_armhf.deb を展開する準備をしています ...
librav1e0:armhf (0.5.1-6) を展開しています...
以前に未選択のパッケージ libsvtav1enc1:armhf を選択しています。
.../17-libsvtav1enc1_1.4.1+dfsg-1_armhf.deb を展開する準備をしています ...
libsvtav1enc1:armhf (1.4.1+dfsg-1) を展開しています...
以前に未選択のパッケージ libyuv0:armhf を選択しています。
.../18-libyuv0_0.0~git20230123.b2528b0-1_armhf.deb を展開する準備をしています ...
libyuv0:armhf (0.0~git20230123.b2528b0-1) を展開しています...
以前に未選択のパッケージ libavif15:armhf を選択しています。
.../19-libavif15_0.11.1-1_armhf.deb を展開する準備をしています ...
libavif15:armhf (0.11.1-1) を展開しています...
以前に未選択のパッケージ libc-dev-bin を選択しています。
.../20-libc-dev-bin_2.36-9+deb12u3_armhf.deb を展開する準備をしています ...
libc-dev-bin (2.36-9+deb12u3) を展開しています...
以前に未選択のパッケージ libde265-0:armhf を選択しています。
.../21-libde265-0_1.0.11-1+deb12u1_armhf.deb を展開する準備をしています ...
libde265-0:armhf (1.0.11-1+deb12u1) を展開しています...
以前に未選択のパッケージ libx265-199:armhf を選択しています。
.../22-libx265-199_3.5-2+b1_armhf.deb を展開する準備をしています ...
libx265-199:armhf (3.5-2+b1) を展開しています...
以前に未選択のパッケージ libheif1:armhf を選択しています。
.../23-libheif1_1.15.1-1_armhf.deb を展開する準備をしています ...
libheif1:armhf (1.15.1-1) を展開しています...
以前に未選択のパッケージ libxpm4:armhf を選択しています。
.../24-libxpm4_1%3a3.5.12-1.1+deb12u1_armhf.deb を展開する準備をしています ...
libxpm4:armhf (1:3.5.12-1.1+deb12u1) を展開しています...
以前に未選択のパッケージ libgd3:armhf を選択しています。
.../25-libgd3_2.3.3-9_armhf.deb を展開する準備をしています ...
libgd3:armhf (2.3.3-9) を展開しています...
以前に未選択のパッケージ libc-devtools を選択しています。
.../26-libc-devtools_2.36-9+deb12u3_armhf.deb を展開する準備をしています ...
libc-devtools (2.36-9+deb12u3) を展開しています...
以前に未選択のパッケージ linux-libc-dev:armhf を選択しています。
.../27-linux-libc-dev_6.1.66-1_armhf.deb を展開する準備をしています ...
linux-libc-dev:armhf (6.1.66-1) を展開しています...
以前に未選択のパッケージ libcrypt-dev:armhf を選択しています。
.../28-libcrypt-dev_1%3a4.4.33-2_armhf.deb を展開する準備をしています ...
libcrypt-dev:armhf (1:4.4.33-2) を展開しています...
以前に未選択のパッケージ libtirpc-dev:armhf を選択しています。
.../29-libtirpc-dev_1.3.3+ds-1_armhf.deb を展開する準備をしています ...
libtirpc-dev:armhf (1.3.3+ds-1) を展開しています...
以前に未選択のパッケージ libnsl-dev:armhf を選択しています。
.../30-libnsl-dev_1.3.0-2_armhf.deb を展開する準備をしています ...
libnsl-dev:armhf (1.3.0-2) を展開しています...
以前に未選択のパッケージ rpcsvc-proto を選択しています。
.../31-rpcsvc-proto_1.4.3-1_armhf.deb を展開する準備をしています ...
rpcsvc-proto (1.4.3-1) を展開しています...
以前に未選択のパッケージ libc6-dev:armhf を選択しています。
.../32-libc6-dev_2.36-9+deb12u3_armhf.deb を展開する準備をしています ...
libc6-dev:armhf (2.36-9+deb12u3) を展開しています...
以前に未選択のパッケージ manpages-dev を選択しています。
.../33-manpages-dev_6.03-2_all.deb を展開する準備をしています ...
manpages-dev (6.03-2) を展開しています...
libaom3:armhf (3.6.0-1) を設定しています ...
manpages-dev (6.03-2) を設定しています ...
libabsl20220623:armhf (20220623.1-1) を設定しています ...
libxpm4:armhf (1:3.5.12-1.1+deb12u1) を設定しています ...
linux-libc-dev:armhf (6.1.66-1) を設定しています ...
libsvtav1enc1:armhf (1.4.1+dfsg-1) を設定しています ...
libgomp1:armhf (12.2.0-14) を設定しています ...
librav1e0:armhf (0.5.1-6) を設定しています ...
libtirpc-dev:armhf (1.3.3+ds-1) を設定しています ...
rpcsvc-proto (1.4.3-1) を設定しています ...
libmpc3:armhf (1.3.1-1) を設定しています ...
libatomic1:armhf (12.2.0-14) を設定しています ...
libgav1-1:armhf (0.18.0-1+b1) を設定しています ...
libdav1d6:armhf (1.0.0-2) を設定しています ...
libx265-199:armhf (3.5-2+b1) を設定しています ...
libubsan1:armhf (12.2.0-14) を設定しています ...
libnsl-dev:armhf (1.3.0-2) を設定しています ...
libcrypt-dev:armhf (1:4.4.33-2) を設定しています ...
libasan8:armhf (12.2.0-14) を設定しています ...
libisl23:armhf (0.25-1) を設定しています ...
libde265-0:armhf (1.0.11-1+deb12u1) を設定しています ...
libc-dev-bin (2.36-9+deb12u3) を設定しています ...
libyuv0:armhf (0.0~git20230123.b2528b0-1) を設定しています ...
libcc1-0:armhf (12.2.0-14) を設定しています ...
cpp-12 (12.2.0-14) を設定しています ...
libavif15:armhf (0.11.1-1) を設定しています ...
libheif1:armhf (1.15.1-1) を設定しています ...
libgcc-12-dev:armhf (12.2.0-14) を設定しています ...
libgd3:armhf (2.3.3-9) を設定しています ...
cpp (4:12.2.0-3) を設定しています ...
libc6-dev:armhf (2.36-9+deb12u3) を設定しています ...
libc-devtools (2.36-9+deb12u3) を設定しています ...
gcc-12 (12.2.0-14) を設定しています ...
gcc (4:12.2.0-3) を設定しています ...
man-db (2.11.2-2) のトリガを処理しています ...
libc-bin (2.36-9+deb12u3) のトリガを処理しています ...
butan@debian:~/projects/hello/src$ cargo run
   Compiling hello v0.1.0 (/home/butan/projects/hello)
    Finished dev [unoptimized + debuginfo] target(s) in 8.79s
     Running `/home/butan/projects/hello/target/debug/hello`
Rust is a programming language.
butan@debian:~/projects/hello/src$

コメント

タイトルとURLをコピーしました