>

1은 find_library (name PATHS path1..pathn)를 지정합니다.

제 질문은 find_library가 어떻게 이름을 라이브러리 파일과 일치합니까 (Windows 및 Linux)?

예를 들어, find_library가 GraphicsMagicK의 제공된 Windows 바이너리 설치에서 MagicK 및 MagicK ++ dll 파일을 식별 할 수 없습니다 :

파일은 : CORE_RL_magick_.dll

쿼리 검색 :

매직 크 CORE_RL_magick

작동하지 않습니다.

  • 답변 # 1

    이 문서 링크를 살펴볼 수 있습니다 :

    http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:find_library

    http://www.cmake.org/cmake/help/v2.8.10/cmake.html#variable:CMAKE_FIND_LIBRARY_PREFIXES

    http://www.cmake.org/cmake/help/v2.8.10/cmake.html#variable:CMAKE_FIND_LIBRARY_SUFFIXES

    find_library는 하나 이상의 라이브러리 이름을 허용 할 수 있습니다. 이러한 이름은 CMAKE_FIND_LIBRARY_PREFIXES가 앞에 붙고 CMAKE_FIND_LIBRARY_SUFFIXES의 값을 얻습니다.  추가되었습니다. 이 두 변수는 librares의 접두사 또는 접미사 방법에 따라 각 OS에 대해 설정해야합니다.

    귀하의 경우에는 Windows 용으로 작성하겠습니다

    SET(CMAKE_FIND_LIBRARY_PREFIXES "")
    SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll")
    
    

    그리고 리눅스 용

    SET(CMAKE_FIND_LIBRARY_PREFIXES "lib")
    SET(CMAKE_FIND_LIBRARY_SUFFIXES ".so" ".a")
    
    

    그런 다음

    find_library(
        magick
        CORE_RL_magick_ (or NAMES if there are multiple names for the same library on different systems)
        PATHS
          path1
          path2
        ...
        (other options that are specified in documentation and would be usefull to you)
    )
    
    

    수정 :

    CMAKE_FIND_LIBRARY_PREFIXES  그리고 CMAKE_FIND_LIBRARY_SUFIXES   project() 에 의해 자동으로 설정됩니다  명령을 먼저 호출하고 find_library()  이 시점 이후에는 변수를 수동으로 설정하는 것보다 더 나은 해결책이 있습니다.

  • 답변 # 2

    find_file() 를 사용하지 않는 이유   find_library() 대신  .dll를 찾으려면

  • 이전 scala - Play 프레임 워크 및 buildsbt에서 애플리케이션 버전을 얻는 방법
  • 다음 javascript - 페이지 리디렉션이 사용될 때 Firebase가 업데이트되지 않습니다