2011-09-08 2 views
0

현재 빌드 라이브러리로 HAMMER 라이브러리를 개발 중이며 CMake를 사용하고 있습니다. 나는 Yake를 통합하는 과정에있다. YARP 역시 CMake를 빌드 시스템으로 사용한다. 따라서 표준 CMake 메서드를 사용하여 YARP를 가져옵니다. CMake를 YARP 컴파일 중에 생성되고 YARP_LIBRARIESYARP_INCLUDE_DIRS을 사용하여 YARPConfig.cmake 파일로 지정합니다. 여태까지는 그런대로 잘됐다.CMake가 외부 라이브러리 의존성을 자동으로 연결합니다.

문제점은 (내 라이브러리의) 연결 단계에서 CMake가 YARP가 의존하는 모든 라이브러리와 자동으로 연결된다는 것입니다. 예를 들어 YARP는 gsl을 사용하지만 내 라이브러리는 (대부분 gsl을 사용하는 YARP 메소드를 호출하지는 않지만) gsl은 내 라이브러리의 종속성 중 하나로 표시됩니다 (ldd 사용).

기본 라이브러리 경로에있는 라이브러리를 사용할 때 큰 문제는 아니지만 라이브러리 경로에없고 (프로젝트의 일부가 아닌) 라이브러리에 연결해야하는 경우 연결이 실패합니다 (필요한 라이브러리를 찾을 수 없으므로).

HAMMER (CMake와 함께 사용하는)를 사용하는 응용 프로그램을 만들 때 YOWP가 기본 위치에 설치되어 있지 않으므로 정확히 무엇이 발생하는지, 내 응용 프로그램은 (위에서 설명한 동작대로) 연결하려고합니다. YARP 라이브러리를 찾을 수 없으므로 실패합니다.

CMake가이 정책을 사용하는 이유를 아는 사람이 있습니까? 더 중요한 것은 YARP를 응용 프로그램의 CMake 스크립트로 가져 오는 것을 의미하지는 않습니다.

감사합니다.

답변

관련 문제