コンパイラ固有の標準ヘッダー#includeパスを設定するには?

コンパイラ固有の標準ヘッダー#includeパスを設定するには?

#include両方のコンパイラにヘッダファイルを見つけるように指示する賢明な方法は何ですか?

私の標準コンパイラは、標準のLinux 86x64システムgcc(現在のv9.3)で動作します。今何かをコンパイルtccしてローカルユーザーディレクトリにインストールしたいと思います。

ルートをtccどこで見つけることができるかどうかはどうすればわかりますか?#include中にいると予想しました。

  • /home/user/lib/tcc/v0.9/includeまたは
  • /home/user/lib/tcc/v0.9/lib/tcc/include

答え1

tccにルートを見つける場所を教えてください#include

-Igccまたはclangを使用するのと同じように、このオプションを使用してください。

からman tcc

  -Idir
      Specify an additional include path. Include paths are searched in the order they are specified.

      System include paths are always searched after. The default system include paths are: /usr/local/include, /usr/include
       and PREFIX/lib/tcc/include. (PREFIX is usually /usr or /usr/local).

<...>tccと"..."include形式の間に違いはないと思います。

またはで説明されているように、デフォルトのパスを表示することもman tccできます。tcc -vv私のシステムでは、次のように表示されます。

tcc version 0.9.27 (x86_64 Linux)
install: /usr/lib/x86_64-linux-gnu/tcc
include:
  /usr/lib/x86_64-linux-gnu/tcc/include
  /usr/local/include/x86_64-linux-gnu
  /usr/local/include
  /usr/include/x86_64-linux-gnu
  /usr/include
libraries:
  /usr/lib/x86_64-linux-gnu
  /usr/lib
  /lib/x86_64-linux-gnu
  /lib
  /usr/local/lib/x86_64-linux-gnu
  /usr/local/lib
libtcc1:
  /usr/lib/x86_64-linux-gnu/tcc/libtcc1.a
crt:
  /usr/lib/x86_64-linux-gnu
elfinterp:
  /lib64/ld-linux-x86-64.so.2

関連情報