2016-07-02 8 views
2

Помогите мне пожалуйста. Я хотел бы добавить библиотеку ICU в свой проект. Моя версия cmake 2.8.12.2.Как добавить библиотеку ICU в проект?

Существует CMakeLists.txt

cmake_minimum_required (версия 2.8)

проект (test1)

набор (CMAKE_MODULE_PATH $ {PROJECT_SOURCE_DIR})
набор (CMAKE_CXX_COMPILER /USR/бен/г ++)
набор (CMAKE_CXX_FLAGS "$ {CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI = 0 -std = C++ 11 -Wall")

find_package (Boost 1.54.0 системные компоненты файловой системы регулярных выражений unit_test_framework требуется)
find_package (СИС 52,0 ТРЕБУЕМОЕ)

include_directories ($ {Boost_INCLUDE_DIR})
link_directories ($ {Boost_LIBRARY_DIR})

add_executable (test1 SRC/dictionary.cpp SRC/main.cpp )
target_link_libraries (test1 $ {Boost_LIBRARIES} Pthread )

Я установил библиотеки ICU: libicu-DEV, libicu-Dev: i386, libicu52, libicu52: i386, libicu52-DBG: i386

Но когда я бегу CMake, я получаю следующее сообщение об ошибке:

CMake Error at CMakeLists.txt:10 (find_package): 
    By not providing "FindICU.cmake" in CMAKE_MODULE_PATH this project has 
    asked CMake to find a package configuration file provided by "ICU", but 
    CMake did not find one. 

    Could not find a package configuration file provided by "ICU" (requested 
    version 52.1) with any of the following names: 

    ICUConfig.cmake 
    icu-config.cmake 

    Add the installation prefix of "ICU" to CMAKE_PREFIX_PATH or set "ICU_DIR" 
    to a directory containing one of the above files. If "ICU" provides a 
    separate development package or SDK, be sure it has been installed. 

Что мне делать? Помоги мне, пожалуйста.

ответ

2

Эта проблема была решена путем добавления файла FindICU.cmake в верхней части каталога проекта с сайта github.com/julp/FindICU.cmake

+0

Начиная с версии 3.7.0, [CMake поставляется с упакованы 'FindICU.cmake'] (https://cmake.org/cmake/help /v3.7/module/FindICU.html#module:FindICU), который, однако, по-разному работает с julp (т.е. несовместим). – DevSolar

0

Это все о включая заголовки и ссылки на библиотеки. Для небольших проектов, вы можете, вероятно, просто, (предположим, что у вас уже есть ICU установлен правильно, и может быть запущен вручную)

include_directories(${ICU_INCLUDE_DIRS}) 
link_directories(${ICU_LIBRARY_DIRS}) 
add_executable(test1 src/dictionary.cpp src/main.cpp) 
target_link_libraries(test1 ${ICU_LIBRARIES}) 

Вы можете использовать, чтобы напечатать информацию при запуске «CMake», чтобы проверить, если CMake находит правильный путь.

MESSAGE("ICU_INCLUDE_DIRS: " ${ICU_INCLUDE_DIRS}) 

версия CMake я использую 3.5.2

 Смежные вопросы

  • Нет связанных вопросов^_^