<stdlib.h>
および<stdio.h>
ヘッダーが Ubuntu サーバーのフォルダーにあることがわかりましたが/usr/include
、 は見つかりませんsys/types.h
。
そして、コンパイラは実際には/usr/include
フォルダー内のヘッダー ファイルを使用しないのではないかと疑い始めました。
これは本当ですか?ファイルはどこにありますか?
ベストアンサー1
私のDebianボックス(そしてUbuntuがそれを台無しにしていないことを願う)あまりにも彼らの熱意の多くは にあります/usr/include/sys/types.h
。
最善策は以下を実行することです:
find /usr/include -name types.h
find / -name types.h # if not found by one above
ただし、開発関連のものはインストール済みサーバー上。コンパイラ ファームのサーバーでない限り、コンパイラとその他の多くのものがデフォルトのインストールの一部でなかったとしても驚きません。
コンパイラがはどこかに置きたいが、その場所がわからない場合は、次のようなものを使用できます。
echo "#include <sys/types.h>" | gcc -E -x c - | grep /types.h
それがどこから来ているのかを知るためです。
そのgcc
コマンドライン:
- 前処理フェーズ(
-E
)の後に停止します。 - ファイルをCソースコードとして扱うように強制します(
-x c
);そして - 標準入力 ( ) からプログラムを取得します
-
(この場合はステートメントから)echo
。
最後はgrep
重要でない行を削除し、インクルードされたファイルの場所が含まれている可能性のある行だけを残します。