C

如何設置編譯器特定的標準標頭檔#include 路徑?

  • April 17, 2020

告訴兩個編譯器尋找它們的#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

我怎麼能告訴 tcc 在哪裡尋找#include路徑?

使用該-I選項,就像使用 gcc 或 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

引用自:https://unix.stackexchange.com/questions/580670