¿Cómo configurar encabezados estándar específicos del compilador #incluyen rutas?

¿Cómo configurar encabezados estándar específicos del compilador #incluyen rutas?

¿Cuál es una forma inteligente de decirle a dos compiladores que busquen sus #includeencabezados?

Al ejecutarse en un sistema Linux estándar 86x64, mi compilador estándar es gcc(actualmente v9.3). Ahora me gustaría compilar algunas cosas tcce instalarlas en un directorio de usuarios local.

¿Cómo podría saber tccdónde buscar el #includecamino? Espero que sea en

  • /home/user/lib/tcc/v0.9/includeo
  • /home/user/lib/tcc/v0.9/lib/tcc/include

Respuesta1

¿Cómo podría decirle a tcc dónde buscar el #includecamino?

Utilice la -Iopción, igual que con gcc o clang:

De 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).

No creo que tcc haga ninguna distinción entre los formularios <...>e "..."include.

Además, como se indica en man tcc, puede utilizar tcc -vvpara mostrarle las rutas predeterminadas. En mi sistema, esto muestra:

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

información relacionada