Como definir cabeçalhos padrão específicos do compilador #include caminhos?

Como definir cabeçalhos padrão específicos do compilador #include caminhos?

Qual é uma maneira inteligente de dizer a dois compiladores para procurarem seus #includecabeçalhos?

Executando em um sistema Linux 86x64 padrão, meu compilador padrão é gcc(atualmente v9.3). Agora eu gostaria de compilar algumas coisas tcce instalá-las em um diretório de usuários local.

Como eu poderia saber tcconde procurar o #includecaminho? Espero que seja em

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

Responder1

Como eu poderia dizer ao tcc onde procurar o #includecaminho?

Use a -Iopção, assim como com gcc ou 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).

Não acredito que tcc faça qualquer distinção entre os formulários <...>e "..."include.

Além disso, conforme observado em man tcc, você pode usar tcc -vvpara mostrar os caminhos padrão. No meu sistema, isso mostra:

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

informação relacionada