2010-08-14 3 views
2

.h 파일에 라이브러리를 만든 후 구조체 정의가 있습니다. 그러나 해당 .h.in에서 찾을 수 없습니다. 누군가가 어떻게 작동하는지 그리고 어디에서 추가 정보를 얻을 수 있는지 말해 줄 수 있습니까?.h에서 생성 된 .h?

구체적으로 다음과 같습니다. 사용자 공간 스레딩 라이브러리 인 pth를 작성합니다. 그것은 pth_p.h.in을 가지고 있는데, 찾고자하는 구조체 정의를 포함하지 않지만 라이브러리를 빌드 할 때 pth_p.h가 나타나고 필요한 정의가 있습니다.

실제로 빌드되기 전에 라이브러리의 모든 단일 파일을 검색하여 구조체 정의를 생성하는 위치를 찾을 수 없습니다.

답변

0

.h.in 아마도 그것은 자신의 값으로 .in 파일 형태 @[email protected]의 변수를 대체

AC_CONFIG_FILES([thatfile.h]) 

피려, 스크립트 (configure.ac에서 생성)을 구성 내에서 처리됩니다.

편집 : 내가 바로 당신이 P 번째는 GNU Autoconf, AutomakeLibtool 사용하여 귀하의 질문에

2

태그를 다시해야 해요 경우 그냥 나타났습니다. ./configure을 실행하면 결국 m4을 실행하는 쉘 스크립트를 실행하여 다양한 시스템 속성을 모두 감지하고 여러 파일을 변경할 수 있습니다.

pth_p.h: $(S)pth_p.h.in 
    $(SHTOOL) scpp -o pth_p.h -t $(S)pth_p.h.in -Dcpp -Cintern -M '==#==' $(HSRCS) 

애매한 링크,하지만 여기에 shtool-scpp manpage의로 설명하는 :이 ./configureMakefile.in에서 Makefile를 생성 한 후 shtool 하위 명령 scpp를 트리거 메이크업을 통해 뭔가를 실행에 종기처럼

같습니다

이 명령은 cpp (1) cod를 공유하기위한 추가 ANSI C 소스 파일 프로세서입니다 e 세그먼트, 내부 변수 변수 및 내부 기능. 의도는 ANSI C에서 라이브러리를 작성한 경우입니다. 여기에 공통적 인 공유 내부 헤더 파일은 라이브러리 소스 파일간에 정보를 공유하는 데 사용되는 입니다.

동작은, 파일에 특별한 구조를 구문 분석이 구조에서 몇 일을 생성하고 이 ofile 할 수있는 출력을 작성하여 tfile 에 위치 마크에이를 삽입하는 것입니다. 또한 파일은 결코 으로 수정되거나 수정되지 않습니다. 대신 구조는 빌드 프로세스의 cpp (1) 단계에 의해 나중에 제거됩니다. 전제 조건은 모든 파일 에 상단에 "" "#include" "ofile" "" ''가 있어야한다는 것입니다.

+2

닫기지만, 아주. 'm4'는'configure.ac' 또는'configure.in' (비추천)을'./configure'로 컴파일하는데 사용됩니다. 이것은''/ configure''를 테스트하는데 사용되는 쉘 스크립트입니다. 나는 전에 shtool-scpp을 보지 못했고 나는 그것을 좋아하거나 싫어하는지 잘 모르겠다. 확실히 멋지다. –

관련 문제