2012-07-17 3 views
2

/my/path/to/file 폴더에 헤더 파일이 거의 없습니다. 나는이 파일을 새로운 C 프로그램에 포함시키는 방법을 알고 있지만 매번 헤더 파일에 전체 경로를 입력해야합니다. linux에서 헤더 파일을 자동으로 찾는 경로 변수를 설정할 수 있습니까?업데이트 경로가 리눅스에 포함

+0

메이크 파일에 경로를 추가 할 수 있습니까? – mathematician1975

+0

gcc를 사용합니까? 직접 사용 하시겠습니까? 아니면 makefile을 사용합니까? – rekire

+0

직접 사용하기 –

답변

4

메이크 파일을 만들 수 있습니다. 최소 예는 다음과 같습니다.

INC_PATH=/my/path/to/file 
CFLAGS=-I$(INC_PATH) 

all: 
    gcc $(CFLAGS) -o prog src1.c src2.c 

여기에서 여러 가지 방법으로이 메이크 파일을 개선 할 수 있습니다. 가장 중요한 것은 컴파일 종속성을 명시하는 것입니다 (따라서 수정 된 파일 만 다시 컴파일됩니다).

참조로 여기에 GNU make documentation에 대한 링크가 있습니다.

gcc -I${MY_INC_PATH} -o prog src1.c src2.c ... 
:

export MY_INC_PATH=/my/path/to/file 

그런 다음 당신이 좋아하는 프로그램을 컴파일 할 수 있습니다 : 당신이 메이크 파일을 사용하지 않으려면

, 당신은 항상 쉽게 컴파일 명령을 입력 할 수 있도록 환경 변수를 설정할 수 있습니다

.bashrc 파일에 MY_INC_PATH 변수를 정의하거나 변수 정의가 포함 된 편리한 위치에 파일을 만드는 것이 좋습니다. 그런 다음 현재 쉘에서 그 변수를 설정 source을 사용할 수

source env.sh 

내가 메이크 파일을 사용하는 것이 훨씬 바람직한 방법입니다, 그러나, 생각합니다.

+0

고마워,하지만 makefile을 쓰지 않으면 어떤 방법이 있니? –

+0

@ username_4567 대체 솔루션을 포함하도록 제 질문을 업데이트했습니다. 그러나 5 줄짜리 makefile을 작성하는 것이 쉽고 더 좋은 해결책 인 것 같습니다. – betabandido

+0

실제로 모든 헤더 파일을 찾을 기본 경로가 있다고 생각합니다. –

-1

저는 지금 리눅스에 없기 때문에 모든 것이 옳은지 확인하기 위해 재부팅 할 수는 없지만 심볼릭 링크를 만들려고 했습니까? 예를 들어, 당신은 우분투에 있습니다 : 당신이 STUF을 포함 할 때 그래서

$ cd /usr/include 
$ sudo ln -s /my/path/to/file mystuff 

다음, 당신은 사용할 수 있습니다 : 당신이 관심이 있다면 (이 비슷한 질문과 가능성이 더 나은 해결

#include <mystuff/SpamFlavours.h> 
관련 문제