2017-03-13 7 views
1

프로젝트를 Autotools에서 CMake로 변환 중입니다. 우리는 문하는 configure.ac 파일이 (가 PKG-설정이없는) 방법을 잘CMake에서 AC_CHECK_LIB 바꾸기

AC_CHECK_LIB([gsuffix], [gsuffix_create], [], AC_MSG_ERROR([Can not find gsuffix library])) 

내가 cmake로 대체 할, 그리고 는 내가 필요로 무엇입니까 :

  • libgsuffix가 존재하고 경로를 확인하십시오.
  • libgsuffix에 gsuffix_create가 있는지 확인하십시오.
  • 컴파일에 -lg 접미어를 추가하십시오. 어떻게 해야할지 알 것 같습니다.

누구나 올바른 방향으로 나를 가리킬 수 있습니까?

+2

당신은 (['CHECK_SYMBOL_EXISTS']을 찾고 될 수 있습니다 HTTPS를 : //cmake.org/cmake/help/latest/module/CheckSymbolExists.html) 또는 이와 유사한 기능. – Angew

+1

또한 ['FIND_LIBRARY'] (https://cmake.org/cmake/help/v3.4/command/find_library.html) – languitar

답변

0

번역이 없습니다. 일반적으로 CMake를 사용하면 모든 헤더와 모든 라이브러리가 실제로 작동하는지 확인하지 않아도됩니다. 파일을 찾으면 트릭을 수행한다고 가정합니다.

  • 아마 find_package는 테스트를 이미 사람을 따라 쓴, 바로 당신을위한 또는 라이브러리는 따라 설정 파일을 제공합니다.

  • Find_library은 라이브러리를 찾기위한 것이지만 이름은 의미합니다.

  • 실제로 라이브러리가 작동하는지 확인해야하는 경우 CheckLibraryExists을 사용하십시오.

0

언급했듯이, 한 명령으로이 작업을 수행하지 못했습니다.

나는 완전히 일반적인 무언가를하는 방법을 이해하는 시간이 충분하지 않았다, 그래서 FindGSUFFIX.cmake 내 골격을 제공 할 수 있습니다 :

FIND_LIBRARY(GSUFFIX_LIBRARY NAMES gsuffix) 

INCLUDE(CheckLibraryExists) 
CHECK_LIBRARY_EXISTS(gsuffix gsuffix_create ${GSUFFIX_LIBRARY} GSUFFIX_VERIFIED) 

# Handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if all listed variables are TRUE. 
INCLUDE(FindPackageHandleStandardArgs) 
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GSUFFIX DEFAULT_MSG GSUFFIX_LIBRARY GSUFFIX_VERIFIED) 

MARK_AS_ADVANCED(GSUFFIX_LIBRARY)