Wie lege ich compilerspezifische Standardheader-#Include-Pfade fest?

Wie lege ich compilerspezifische Standardheader-#Include-Pfade fest?

Wie kann man zwei Compilern auf intelligente Weise mitteilen, dass sie nach ihren #includeHeadern suchen sollen?

Auf einem Standard-Linux-System mit 86 x 64 läuft mein Standard-Compiler gcc(aktuell v9.3). Jetzt möchte ich einige Dinge damit kompilieren tccund es in einem lokalen Benutzerverzeichnis installieren.

Wie kann ich herausfinden, tccwo ich nach dem Pfad suchen soll #include? Ich vermute, er befindet sich bei

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

Antwort1

Wie kann ich TCC mitteilen, wo es nach dem Pfad suchen soll #include?

Verwenden Sie die -IOption, genau wie bei gcc oder clang:

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

<...>Ich glaube nicht, dass TCC zwischen den Formen „ und „ Include “ unterscheidet "...".

Wie in erwähnt man tcc, können Sie auch verwenden, tcc -vvum die Standardpfade anzuzeigen. Auf meinem System wird Folgendes angezeigt:

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

verwandte Informationen