즉, 대답은 XLC의 tempinc 유틸리티를 사용하여 마이그레이션하는 것입니다.
tempinc 유틸리티는 헤더 파일 (.h 또는 .hpp)의 템플릿 선언과 .c 파일의 구현 (이 확장자는 필수 항목 임)으로 파일을 설정해야합니다. 컴파일러가 템플릿 인스턴스화를 발견하면 명시 적 인스턴스화를 tempinc 디렉토리의 다른 소스 파일에 지정하여 강제로 코드를 생성합니다. 컴파일러는 foo.c의 foo.h에서 declered 된 템플릿 정의를 찾는다.
내가 지정한 문제점은 종속성 빌더가이 사실을 알지 못하므로 의존성에 .c 파일을 포함 할 수 없다는 점입니다.
-qtempinc 대신 버전 6.0 IBM recommends using a the -qtemplateregistry setting을 사용하십시오. 그런 다음 헤더 파일에 템플릿 정의를 포함하는 일반적인 템플릿 설정을 사용할 수 있습니다. 템플릿 정의는 종속성 찾기에서 볼 수 있거나 헤더 파일에서 #include하는 별도의 파일에 넣을 수 있습니다. 종속성 찾기를 사용하여 찾았습니다.
당신이 -qtempinc 사용에서 마이그레이션하는 경우, 당신은 조건부로 아래와 같은 코드를 사용하여 선언 파일에서 템플릿 구현 파일을 #include를 할 수 있습니다 : 당신이 이제까지 결정하는 경우
// end of foo.h
#ifndef __TEMPINC__
#include "foo.c"
#endif
따라서 코드를 빌드하고 링크합니다 -qtempic 설정을 사용하십시오.
(내 답변 삭제 - JohnMcG의 .c 파일이 어디서 왔는지 오해했습니다.) –