2014-05-23 3 views
8

저는 CMake로 작업하기 시작했습니다. 그리고 나는 그들이 find_packagefind_library을 가지고 있음을 발견했습니다. 그리고 이것은 나를 혼란스럽게합니다. 프로그래밍 세계에서 패키지와 라이브러리의 차이점을 설명 할 수 있습니까? 아니면, CMake의 세계에서?패키지 대 라이브러리

감사합니다.

답변

6

이 프로젝트에서 ZLIB를 사용하려면 상상, 당신은 헤더 파일 zlib.h을 찾을 필요가 있고, 라이브러리 libz.so (Linux) 낮은 수준의 cmake 명령 find_pathfind_library을 사용하여 찾을 수 있으며 find_package(ZLIB)을 사용할 수 있습니다. 나중의 명령은 zlib를 사용하는 데 필요한 모든 것을 찾으려고합니다. 추가 매크로 정의 또는 종속성이 될 수 있습니다.

업데이트에 대한 자세한 내용 find_package 다음 CMake 명령 find_package(SomeThing)가 호출 될 때, as says the documentation는이 두 가지 가능성 : 또는 파일을 검색하는 설정 모드 ((파일 FindSomeThing.cmake 검색) 모듈 모드 SomeThingConfig.cmake). ZLIB의 경우, FindZLIB이라는 모듈이 있는데, CMake 자체와 함께 제공됩니다 (내 리눅스 컴퓨터에서는 파일 /usr/share/cmake/Modules/FindZLIB.cmake). 이 모듈은 CMake API를 사용하여 기본 위치에서 ZLIB 파일을 검색하거나 자동으로 찾을 수없는 경우 사용자에게 위치를 묻는 CMake 스크립트입니다.

+1

어떻게 ZLIB가 정의 되었습니까? zlib을 사용하는 데 필요한 것을 알아내는 데 필요한 명령을 누가 작성 했습니까? – ShrimpCrackers

+0

@ShrimpCrackers : 답변으로 수정했습니다. – lrineau