하드 코딩 경로를 패키지 파일로하는 것은 할 수 절대적으로 잘못된 것입니다. 그렇게하기로 한 경우 autotools를 사용하여 패키지를 빌드하는 기본 규칙을 위반하고 있음을 인식해야합니다. 패키지 파일에/mypath/include를 지정하면, 모든 기계에서 작동하도록 의도 된 패키지의 특정 기계에 대한 사항을 지정하게됩니다. 분명히 틀렸다./mypath에서 헤더 파일을 찾기 위해 패키지에 (머신에 빌드 할 때) 원하는 것처럼 보입니다. 패키지를 파괴하지 않고도 쉽게 달성 할 수 있습니다. 그것을하기위한 (적어도) 3 가지 방법이 있습니다 :
1) config.site 파일을 사용하십시오. /usr/local/share/config.site에 추가 라인을 (이 파일 필요한 경우 생성) :
CPPFLAGS="$CPPFLAGS -I/mypath/include"
이제
의 autoconf를 사용하는 패키지는 기본 접두어 (/ usr/지방)과 스크립트를 구성 생성 된 것 -I/mypath/include를 CPPFLAGS에 추가하면/mypath/include의 헤더가 발견됩니다.
2) 당신은 단지 그가에 설치할 수 없습니다 (모두 만들 수있는 과제 빌드하려면 /) 지역은/usr, 당신이 사용할 수 있습니다 : $ 홈에 CPPFLAGS을 지정 같은 라인을 넣어
를/config.site로 설정하고 기본 쉘 환경에서 CONFIG_SITE = $ HOME/config.site를 설정하십시오. 이제 autoconf 생성 configure 스크립트를 실행할 때마다 $ HOME/config.site의 할당이 만들어집니다.
3) 기본 셸 환경에서 CPPFLAGS를 지정하기 만하면됩니다.
이러한 모든 솔루션에는 빌드 파일을 수정하는 것보다 두 가지 주요 이점이 있습니다. 첫째, 모든 autoconf 생성 패키지에서 작동합니다 (규칙을 따르고 CPPFLAGS와 같은 사용자 변수를 빌드 파일에 할당하는 것과 같은 일을하지 않는 한). 둘째, 모든 컴퓨터에서 작동해야하는 패키지에 컴퓨터 별 정보를 저장하지 않습니다.
이것은 잘못된 행동입니다. './ configure'는 컴파일중인 시스템에있는 것들을 파악하는 단계이기 때문에 컴파일하는 사용자가 헤더 경로의 기본이 아닌 위치를 알려주는 단계이기도합니다. – reinierpost
CPPFLAGS는 콜론으로 구분 된 목록이 아닙니다. CPPFLAGS = '- I/usr/include/freetype -I/mypath/include'를 입력하십시오. –