Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

gcc 6.3.0 などでコンパイル時に出る .h の No suchfile or directory の対処方法

あんまり書いているところがなさそうなので,ちょっと書いてみます.

gcc 6.3.0 で Plamo Linux のパッケージをビルドしていると

/usr/include/c++/6.3.0/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
 #include_next <stdlib.h>
                                     ^

なメッセージが大量に出ています.

最初,これがなんで出るのか非常に悩ましかったんですけど,gcc の仕様変更に伴ってオプションフラグの使い方が変わったみたいですね.

Plamo Linux のパッケージビルドスクリプト

export CFLAGS="-isystem /usr/include $target"
export CPPFLAGS="-isystem /usr/include $target "

になっているけど,これが原因.これを

export CFLAGS="-I /usr/include $target"
export CPPFLAGS="-I /usr/include $target "

に変更すれば問題なくなります.

Plamo だけじゃなくて,gccコンパイル時にファイルがあるはずなのに No such file or directory なメッセージが出る場合には gccコンパイルフラグを見直してみると良いでしょう.

以上,参考までに.