새로운 헤더 파일을 보편적으로 사용할 수 있게 만드는 방법은 무엇입니까?

새로운 헤더 파일을 보편적으로 사용할 수 있게 만드는 방법은 무엇입니까?

방금 새 헤더 파일 몇 개를 다운로드했고 해당 파일이 포함된 폴더를 사용 가능하게 만들었습니다. 첫째, 이를 사용하려는 모든 파일에서 사용할 수 있도록 만들고 싶습니다. 그래서, 예를 들어 math.h처럼 원하는 곳에 새 헤더 파일(newheader.h라고 함)을 포함할 수 있기를 바랍니다. 어디에 넣어야 하나요?

둘째, 모든 사용자가 이 파일을 사용할 수 있도록 하고 싶습니다. 루트 권한이 있습니다. 넣어야 하는 특별한 디렉토리가 있나요? 정말 고마워!

답변1

에 저장하세요 /usr/local/include. 에서http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html, 이 디렉토리의 항목은 "... 시스템 소프트웨어가 업데이트될 때 덮어쓰기로부터 안전합니다." 이는 다운로드한 헤더 파일이 시스템 업데이트로 인해 방해되는 것을 원하지 않기 때문에 중요합니다. 안에 /usr/include.

답변2

내 시스템에는 /usr/local/include/디렉토리가 존재하며 비어 있습니다. Filsystem Hierarchy Standard는 다음과 같이 말합니다(FHS 3.0) 사용할 디렉토리는 입니다 /usr/local/include. 파일은 누구나 읽을 수 있어야 0444하고( ) 디렉터리는 검색 가능해야 합니다( 0555).

답변3

문제는 무엇을 달성하고 싶은가입니다.

일반적으로 세 가지 시나리오가 있습니다.

  • 개발
  • 로컬 설치( $HOME)
  • 글로벌 설치

처음 2개의 경우 -I스위치를 사용하여 헤더에 대한 경로를 제공해야 합니다. 첫 번째는 아마도 이고 -I../mylib/include, 두 번째는 아마도 입니다 -I/home/user/local_libs/somelib/include.

세 번째는 전역 설치로, 에 배치해야 /usr/local/include하지만 automake 또는 cmake와 같은 도구로 관리됩니다. 패키징할 때 관리자는 헤더를 설치할 설치 경로 및/또는 포함 경로를 조정해야 합니다 /usr/include.

automake를 사용할 때 다음보다 주의 사항이 있을 수 있습니다.--prefix 매개변수시스템 패키지를 방해하지 않는 안전한 설치를 위해 기본값이 설정되어 있습니다 /usr/local. 즉, 데비안 관리자는 ./configure --prefix=/usr패키지 스크립트에서 실행합니다. 포함 경로는 이 접두사를 기반으로 작성되므로 패키지 설치를 따릅니다.

관련 정보