명령 줄 옵션을 사용하여 헤더 파일을 포함 하시겠습니까? (문자 그대로 수백 개의 메이크

명령 줄에서 포함 할 추가 헤더 파일을 지정할 수 있습니까 (GCC 4 / C ++ 사용)?

아니면 #include를 제외하고 파일을 포함 할 수있는 다른 방법이 있습니까?

배경 : 내 PC에서 대규모 코드베이스를 컴파일하려고합니다. 코드는 일반적으로 운영 체제와 얽혀있는 복잡한 빌드 시스템 (SoftRelTools anybody?)이있는 클러스터에서 컴파일되어 다른 곳에 설치하는 것이 사실상 불가능합니다 (문자 그대로 수백 개의 메이크 파일 및 셸 스크립트, 하드 네트워크 드라이브에 대한 코딩 된 경로). 그러나 실제 코드는 매우 간단하고 잘 컴파일되지만 많은 포함이 누락되어 있습니다 (대부분 a la ” include <vector>“및 ” include <math.h>“). 빌드 시스템이 일반적으로 이것을 처리한다고 생각하지만 코드를 살펴보고 수동으로 포함을 추가해야하므로 오히려 피하고 싶습니다.



답변

내가 발견 -include 옵션을 선택합니다. 이것이 당신이 원하는 것입니까?

-파일 포함

“#include”file “”이 기본 소스 파일의 첫 번째 행으로 나타나는 것처럼 파일을 처리합니다. 그러나 파일을 검색 한 첫 번째 디렉토리는 기본 소스 파일이 포함 된 디렉토리가 아니라 전 처리기의 작업 디렉토리입니다. 찾을 수없는 경우 “#include”… “”검색 체인의 나머지 부분에서 정상적으로 검색됩니다.

-include 옵션이 여러 개있는 경우 파일은 명령 줄에 나타나는 순서대로 포함됩니다.


답변

gcc 매뉴얼에서 :

-파일 포함

#include "file"“이 기본 소스 파일의 첫 번째 행으로 나타난 것처럼 파일을 처리합니다. 그러나 파일을 검색 한 첫 번째 디렉토리는 기본 소스 파일을 포함하는 디렉토리 대신 전 처리기의 작업 디렉토리입니다. 찾을 수없는 경우 ” #include "..."“검색 체인 의 나머지 부분에서 정상적으로 검색됩니다.

-include 옵션이 여러 개있는 경우 파일은 명령 줄에 나타나는 순서대로 포함됩니다.


답변

gcc 문서에 따르면 명령 줄 스위치 “-include file”이 작업을 수행합니다.