2012-11-07 3 views
1

한다고 가정 내가 가진 프로그램같은 프로그램에 포함 된 경로를 가져옵니다

main.c를

#include "file.h" 
#include <stdio.h> 
int main() 
{ 
//Code to found the included path 
} 

gcc -I /local main.c 

나는이 프로그램 내부 헤더 파일에 포함 된 경로를 찾을 수있는 방법 이제 3 그들의 일 수있다 경로 설정 포함 경로

  1. 현재 디렉토리
  2. ENV 변수 또는 다른
  3. Directory는 같은 프로그램 내에서이 얻을 수있는 방법을 알려주세요 -I 옵션

에 포함.

+1

http://stackoverflow.com/questions/13079650/how-can-i-find-the-header-files-of-the-c- programming-language-in-linux/13080356 # 13080356 –

+0

그 질문은 사용자가 인클루드 파일을 찾은 곳을 찾는 것에 관한 것입니다. 그는 프로그램 자체가 정보를 얻기를 원합니다. – Barmar

+0

C가 이런 종류의 내성 메커니즘을 제공한다고 생각하지 않습니다. 하나는 "포함 된 경로"여야합니다 여러 포함 파일이 있습니까? BTW, PATH 환경 변수는 포함 파일을 찾는 데 사용되지 않습니다. – Barmar

답변

2

편집 할 수있는 포함 파일의 경우 __FILE__ 매크로를 사용할 수 있습니다. 전처리 기가 /the/directory/filename과 같은 전체 파일 이름을 삽입하게합니다. 당신이 (헤더를 포함하는 코드에서) MyIncludeFileName를 참조하지 않는 경우

static const char MyIncludeFileName[] = __FILE__; 

컴파일러가 MyIncludeFileName가 선언되었지만 사용되지 않는다는 경고를 수 있습니다

은 그냥 헤더에 후속 라인을 추가합니다. 이것은 다음을 대해 컴파일러가 조용히 말할 :

static const char MyIncludeFileName[] __attribute__ ((unused)) = __FILE__; 
+0

사이드 노트와 같이 : __attribute__ ((unused))는 MSVC에서 작동하지 않습니다. :) –

관련 문제