症状
Ubuntu18.04でC言語のコンパイル時に以下のエラーが出たときの対処方法をメモしておきます。
sys/cdefs.h: そのようなファイルやディレクトリはありません
対処
普通はlibc6-dev-i386
をインストールすれば治るようです。
sudo apt install libc6-dev-i386
私の場合、libc6-dev-i386
は既にインストールされていました。
libc6-dev
を再インストールすることで解決しました。
sudo apt install --reinstall libc6-dev
原因
/usr/include/sys/cdefs.h
は/usr/include/x86_64-linux-gnu/sys/cdefs.h
へのシンボリックリンクになっています。
その/usr/include/x86_64-linux-gnu/sys/
が存在しなかったことが原因でした。
おそらく、sys
を除外したバックアップから復元したときにやってしまったようです。うっかりすぎますね。