컴파일러별 표준 헤더 #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?

-Igcc 또는 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

관련 정보