libake를 사용하는 응용 프로그램에 대한 CMake 계층 구조를 만들려고합니다. Libpng에는 zlib가 필요합니다. 같은 것을 배치, 최상위 CMakeLists.txt에 다음cmake 계층 구조 zlib, libpng 및 내 응용 프로그램
/development
CMakeLists.txt
/zlib-1.2.5
CMakeLists.txt <- provided by zlib
-sources-
-build of zlib?-
/libpng154
CMakeLists.txt <- provided by libpng
-sources-
-build of libpng?-
/myapp
CMakeLists.txt
-sources-
/build
-build of myapp-
-build of zlib?-
-build of libpng?-
... 그리고하십시오 CMakeLists.txt 이후
모두 ZLIB와 함께 배포하고 처음 아이디어를 libpng를하면 다음과 같은 구조를 만드는 것이었다됩니다 :project(everything)
...
add_subdirectory(zlib-1.2.5)
add_subdirectory(libpng154)
add_subdirectory(myapp)
...
운이 없다. libpng의 CMakeLists.txt는 find_package (ZLIB ...)를 수행하지만 찾을 위치를 알지 못합니다. 이것은 zlib을/usr에 "설치"하여 Mac OS에서 해결할 수 있습니다. 그러나 이것은 Windows에서 작동하지 않습니다.
그렇다면 나는 하위 디렉토리로 재귀하지 않을 것이라고 생각했습니다. 독립적으로 zlib과 libpng를 컴파일하고 빌드하고 find_package (PNG ...)를 수행하여 내 응용 프로그램으로 이동합니다. (제공되는 CMakeLists.txt를 통해 zlib 및 libpng 컴파일 및 빌드가 Mac OS에서 작동합니다.) 하지만 zlib가/usr에 설치 되었기 때문에).
project(everything)
...
find_package(PNG...)
add_subdirectory(myapp)
...
find_package (PNG ...)가 실패합니다. find_package (PNG ...)가 방금 만든 libpng 라이브러리를 찾을 위치를 어떻게 알 수 있는지 모르겠습니다. 예를 들어 부스트의 경우 "BOOST_ROOT"변수를 설정할 수 있습니다. libpng에 대해 simular가 있습니까? BOOST_ROOT의 경우와 같이
친절 감사를
다니엘 커스
일반적으로 find_package가 실패하면 CMakeCache 파일을 편집하고 거기에 포함 및 라이브러리 경로를 입력 할 수 있습니다. CMake에 GUI를 사용하는 것이 가장 쉽습니다. – LiMuBei