저는 CMake로 작업하기 시작했습니다. 그리고 나는 그들이 find_package
과 find_library
을 가지고 있음을 발견했습니다. 그리고 이것은 나를 혼란스럽게합니다. 프로그래밍 세계에서 패키지와 라이브러리의 차이점을 설명 할 수 있습니까? 아니면, CMake의 세계에서?패키지 대 라이브러리
감사합니다.
저는 CMake로 작업하기 시작했습니다. 그리고 나는 그들이 find_package
과 find_library
을 가지고 있음을 발견했습니다. 그리고 이것은 나를 혼란스럽게합니다. 프로그래밍 세계에서 패키지와 라이브러리의 차이점을 설명 할 수 있습니까? 아니면, CMake의 세계에서?패키지 대 라이브러리
감사합니다.
이 프로젝트에서 ZLIB를 사용하려면 상상, 당신은 헤더 파일 zlib.h
을 찾을 필요가 있고, 라이브러리 libz.so
(Linux) 낮은 수준의 cmake 명령 find_path
및 find_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 스크립트입니다.
find_package : 외부 프로젝트의 설정을로드하십시오.
find_library : 라이브러리를 찾으십시오.
출처 : http://www.cmake.org/cmake/help/ctest2.6docs.html
그리고 패키지와 라이브러리의 정의는 여기에 있습니다 :
What's the difference between module, package and library in Haskell?
어떻게 ZLIB가 정의 되었습니까? zlib을 사용하는 데 필요한 것을 알아내는 데 필요한 명령을 누가 작성 했습니까? – ShrimpCrackers
@ShrimpCrackers : 답변으로 수정했습니다. – lrineau