examples
폴더와 함께 제공되는 C++ 라이브러리 프로젝트가 있습니다. 예는 독립형입니다. 즉, 소스 트리의 나머지 부분없이 라이브러리를 사용하는 실제 애플리케이션 인 것처럼 컴파일 할 수 있습니다. 제공된 FindMyLib.cmake
을 사용하여 시스템에 설치된 라이브러리를 찾습니다.cmake 프로젝트를 하위 프로젝트에 연결할 수 있습니까?
도 전체 라이브러리와 함께 빌드 할 수 있습니다.
if(MYLIB_BUILD_EXAMPLES)
add_subdirectory(examples/fooexample)
add_subdirectory(examples/barexample)
endif()
을하지만 라이브러리를 설치하기 전에 내가 find_package
를 사용할 수 없기 때문에이 작동하지 않습니다 수 있습니다 : 처음에, 나는 서브 디렉토리로 추가. 검색 경로에 기본 빌드 디렉토리를 추가 할 수는 있지만, cmake가 실행되는 동안 라이브러리가 아직 빌드되지 않았으므로 충분하지 않습니다 (분명히).
이 문제를 해결하려면 어떻게해야합니까? 라이브러리를 빌드하는 동안이 서브 프로젝트에 라이브러리를 투명하게 링크 할 수있는 방법이 있습니까 (또한 설치하지 않고 실패 할 가능성이 있으므로 find_package를 "비활성화").
내가 뭔가를 놓친하지 않는 한,이 작동하지 않습니다 라이브러리가 아직 구축되지 않기 때문에 라이브러리가 add_library (MYLIB'로 (추가 된 경우의 예에 대한 구성 단계는, 오류로 – piwi
을 이끌 것입니다) ') * before *'add_subdirectory (examples/...)','target_link_libraries (fooexample $ {MyLib_LIBRARY})'는 ** target **과 보통 연결로 작동합니다. 라이브러리 타겟은이 단계에서 빌드 할 필요가 없습니다. – Tsyvarev
불편을 끼쳐 드려 죄송합니다. – piwi