GNU/Linux >> Linux の 問題 >  >> Linux

Linux で C プログラミング言語のヘッダー ファイルを見つけるにはどうすればよいですか?

locate stdio.h

または

mlocate stdio.h

しかし locate データベースを更新していない場合は、データベースに依存しています

sudo updatedb

gcc に問い合わせることもできます gcc によってスキャンされるデフォルトのディレクトリを知る それ自体:

gcc -print-search-dirs

gcc -H ... 通常のコンパイルの副作用として、すべてのインクルード ファイルのフル パスを出力します。 -fsyntax-only を使用 さらに、出力を作成しないようにします (プログラムにエラーがあるかどうかは引き続き通知されます)。例 (Linux、gcc-4.7):

$ cat > test.c
#include <stdbool.h>
#include <stdio.h>
^D
$ gcc -H -fsyntax-only test.c
. /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stdbool.h
. /usr/include/stdio.h
.. /usr/include/features.h
... /usr/include/x86_64-linux-gnu/bits/predefs.h
... /usr/include/x86_64-linux-gnu/sys/cdefs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/gnu/stubs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
.. /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
.. /usr/include/x86_64-linux-gnu/bits/types.h
... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/bits/typesizes.h
.. /usr/include/libio.h
... /usr/include/_G_config.h
.... /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
.... /usr/include/wchar.h
... /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stdarg.h
.. /usr/include/x86_64-linux-gnu/bits/stdio_lim.h
.. /usr/include/x86_64-linux-gnu/bits/sys_errlist.h

各行の先頭にあるドットは、#include のネストの深さをカウントします


gcc を使用している場合は、次のような方法で特定のファイルをチェックできます:

echo '#include <stdbool.h>' | cpp -H -o /dev/null 2>&1 | head -n1

-H 含まれているすべてのファイルを再帰的に出力するようにプリプロセッサに要求します。 head -n1 そこから出力の最初の行だけを取得し、名前付きヘッダーに含まれるファイルを無視します (ただし、特に stdbool.h はおそらくそうではありません)。

たとえば、私のコンピューターでは、上記の出力:

. /usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdbool.h

前処理中に、すべてのプリプロセッサ ディレクティブが実際のものに置き換えられます。マクロ展開、コードコメントの削除、ヘッダーファイルのソースコードを含むなど...

cpp を使用して確認できます - C プリプロセッサ コマンド。

コマンドラインの例:

cpp Filename.c

前処理された出力を表示します。


Linux
  1. Linuxで重複ファイルを見つける方法

  2. Linux の find コマンドを使用してファイルを検索する方法

  3. Linux ですべてのスパース ファイルを見つける方法

  1. Linux の <conio.h> ヘッダー ファイルはどこにありますか? <conio.h> が見つからないのはなぜですか?

  2. Linux でファイルとディレクトリのサイズを確認するにはどうすればよいですか?

  3. Linux でオンラインのユーザー数を確認するにはどうすればよいですか?

  1. Linuxでファイルを見つける方法

  2. Linuxのviでfindによって返されたすべてのファイルを編集するにはどうすればよいですか?

  3. Linux でハードウェア モデルを見つけるにはどうすればよいですか?