2013-04-02 2 views
12

cmake 버전 2.8.4힘 cmake의 FIND_LIBRARY는

사용자 정의 디렉토리를 보면합니다 내가에 연결하는 내 응용 프로그램을 자신을 컴파일하려면 한 다음 아파치 휴대용 런타임 라이브러리가 있습니다.

내 프로젝트 디렉토리 내 4월 도서관은 여기서 내 CMakeLists.txt에서

gw_proj/tools/apr/libs 

나는 다음과 같은 한 :

FIND_LIBRARY(APRUTIL NAMES "aprutil-1" 
    PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs) 

내 문제는 이미 아파치 휴대용 런타임이있는 기계에 이미 설치되어 있으면이 폴더에서 찾을 것입니다 :

/usr/lib 

따라서 무시됩니다. 내 커스텀 경로.

어떻게 항상 내 사용자 디렉토리 찾기 위해 FIND_LIBRARY 강제 할 수 있습니다 제안

답변

11

에 대한

gw_proj/tools/apr/libs 

많은 감사를 당신은 하나 NO_DEFAULT_PATH 이상, NO_CMAKE_ENVIRONMENT_PATH 를 사용하여 검색 순서를 지정할 수 있습니다, NO_CMAKE_PATH, NO_SYSTEM_ENVIRONMENT_PATH, NO_CMAKE_SYSTEM_PATH, CMAKE_FIND_ROOT_PATH_BOTH, ONLY_CMAKE_FIND_ROOT_PATH 또는 NO_CMAKE_FIND_ROOT_PATH입니다. find_library에 대한 문서에서

:

기본 검색 순서가 가장 구체적으로 설계되어 일반적인 사용 사례에 대한 최소한 특정합니다. 통화 중 하나가 결과 변수를 설정하고 호가 다시 검색하지 않도록 캐시에 저장됩니다 성공하면

find_library(<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH) 
find_library(<VAR> NAMES name) 

: 프로젝트는 단순히 명령을 여러 번 호출하고 NO_의 * 옵션을 사용하여 순서를 무시할 수 있습니다 .

그래서 귀하의 경우에, 당신은

FIND_LIBRARY(APRUTIL NAMES "aprutil-1" 
    PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs NO_DEFAULT_PATH) 
+0

감사를 할 수있는, 마치 마법처럼 일했다. – ant2009