Я студент-робототехник из 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, учебников и других заданных вопросов, но безуспешно.
Я надеюсь, что кто-то может помочь мне с этой проблемой.
Заранее спасибо!
Чтобы использовать внешнюю библиотеку, вам необходимо:
Сделать заголовочные файлы из библиотеки доступными:
INCLUDE_DIRECTORIES (includePath)
includePath
быть вашей Байесовской библиотекой оптимизации, включающей папку (где файлы .h)
Связь с библиотекой. Для этого просто добавьте:
TARGET_LINK_LIBRARIES ($ {PROJECT_NAME} mylib)
myLib
быть вашей библиотекой байесовской библиотеки оптимизации .lib или .so
Может быть, вам сначала придется скомпилировать «Байесовскую библиотеку оптимизации»
Если библиотека правильно установлена в вашей среде, может быть проще найти ее с помощью CMake find_package
Команда, но я не знаком с ней, я предпочитаю обрабатывать вещи вручную, как предложено.