Как включить библиотеки и флаги в файл CMake [duplicate]

Код ниже работает хорошо для меня.

list = map (lambda x: float('%0.2f' % x), list)
1
задан Darakian 20 December 2016 в 15:01
поделиться

2 ответа

Если вы хотите строить его каждый раз вместе с вашим проектом, самым простым способом было бы:

  • Добавить исходный код где-нибудь в ваше дерево проекта
  • Добавить пользовательская цель CMake , которая должна запускаться до начала компиляции
  • . В этой настраиваемой цели запустите все, что необходимо для компиляции библиотеки (в вашем случае это ./configure -> make - > make install.

Однако это редко требуется, и в большинстве случаев вам нужно просто построить библиотеку один раз и связать ее как с любой другой внешней библиотекой.

2
ответ дан Community 17 August 2018 в 09:50
поделиться

Работа с библиотеками для вас есть 2 варианта:

  1. Если вы загрузили и смогли создать и установить его, вы можете попытаться найти его позже внутри вас, CMAKE, как это ( в случае Boost) и ссылка на вашу цель: find_package (Boost COMPONENTS date_time system serialization thread program_options файловая система unit_test_framework regex chrono НЕОБХОДИМО) если сообщение (NOT Boost_FOUND) (FATAL_ERROR «Не могу найти boost!») сообщение endif (NOT Boost_FOUND) (STATUS) boost found ") include_directories ($ {Boost_INCLUDE_DIRS}) link_directories ($ {Boost_LIBRARY_DIRS}) target_link_libraries (YOUR_TARGET_NAME $ {Boost_LIBRARIES})
  2. Вы можете добавить внешние библиотеки в качестве автономной цели и использовать smth, как это для CMake для его создания: set (источники async_waiter.h async_waiter_impl.h async_waiter_impl.cpp) add_library (async_waiter $ {sources})

, а позже ссылка, на которую вы нацелитесь на нее:

target_link_libraries(YOU_TARGET_NAME async_waiter)
3
ответ дан Dmitry 17 August 2018 в 09:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: