Добавление внешней библиотеки в проект cmake

Я студент-робототехник из Instituto Superior Técnico, и у меня возникают проблемы с использованием внешней библиотеки в моем проекте.

Я использую симулятор робототехники под названием Simox http://simox.sourceforge.net/. Это библиотека, над которой я работал некоторое время. Я использовал файл шаблона cmake, поставляемый с симулятором (с небольшими изменениями), который позволяет мне использовать Simox с моим собственным кодом:

PROJECT ( myDemo )

FIND_PACKAGE(Simox REQUIRED)
IF(Simox_USE_COIN_VISUALIZATION)
include_directories(${PROJECT_SOURCE_DIR}/include)

FILE(GLOB SRCS ${PROJECT_SOURCE_DIR}/iCubSimulator.cpp ${PROJECT_SOURCE_DIR}/src/iCub.cpp ${PROJECT_SOURCE_DIR}/src/iCubHand.cpp ${PROJECT_SOURCE_DIR}/src/ApproachMovementSpace.cpp ${PROJECT_SOURCE_DIR}/src/OrientedBoundingBox.cpp ${PROJECT_SOURCE_DIR}/src/GraspOptimization.cpp ${PROJECT_SOURCE_DIR}/src/Window.cpp)
FILE(GLOB INCS ${PROJECT_SOURCE_DIR}/include/iCub.h ${PROJECT_SOURCE_DIR}/include/iCubHand.h ${PROJECT_SOURCE_DIR}/include/ApproachMovementSpace.h ${PROJECT_SOURCE_DIR}/include/OrientedBoundingBox.h ${PROJECT_SOURCE_DIR}/include/Window.h)
set(GUI_MOC_HDRS ${PROJECT_SOURCE_DIR}/include/GraspOptimization.h ${PROJECT_SOURCE_DIR}/include/Window.h)
set(GUI_UIS ${PROJECT_SOURCE_DIR}/ui/iCubSimulator.ui)
set(CMAKE_CXX_FLAGS "-Wall -std=c++11 -lpthread")

SimoxQtApplication(${PROJECT_NAME} "${SRCS}" "${INCS}" "${GUI_MOC_HDRS}" "${GUI_UIS}")
ENDIF()

В настоящее время я хочу использовать дополнительную байесовскую библиотеку оптимизации под названием BayesOpt: http://rmcantin.bitbucket.org/html/. И я не знаю, как правильно изменить мой файл cmake, чтобы включить эту библиотеку.

Я пытался сделать это самостоятельно, с помощью Google, учебников и других заданных вопросов, но безуспешно.

Я надеюсь, что кто-то может помочь мне с этой проблемой.

Заранее спасибо!

1

Решение

Чтобы использовать внешнюю библиотеку, вам необходимо:

  • Сделать заголовочные файлы из библиотеки доступными:

    INCLUDE_DIRECTORIES (includePath)

includePath быть вашей Байесовской библиотекой оптимизации, включающей папку (где файлы .h)

  • Связь с библиотекой. Для этого просто добавьте:

    TARGET_LINK_LIBRARIES ($ {PROJECT_NAME} mylib)

myLib быть вашей библиотекой байесовской библиотеки оптимизации .lib или .so

Может быть, вам сначала придется скомпилировать «Байесовскую библиотеку оптимизации»

Если библиотека правильно установлена ​​в вашей среде, может быть проще найти ее с помощью CMake find_package Команда, но я не знаком с ней, я предпочитаю обрабатывать вещи вручную, как предложено.

0

Другие решения


По вопросам рекламы [email protected]