Как задать пути #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путь?

Используйте эту -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 делает какое-либо различие между формами the <...>и "..."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

Связанный контент