2015-03-27 2 views
1

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

Я использую симулятор робототехники под названием 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, учебников и других задаваемых вопросов, но без успеха.

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

Заранее благодарен!

ответ

0

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

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

    include_directories (INCLUDEPATH)

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

  • Ссылка на библиотеку. Чтобы сделать это, просто добавьте:

    TARGET_LINK_LIBRARIES ($ {PROJECT_NAME} MyLib)

myLib быть вашим байесовский Optimization библиотеки .lib файл или .so файл

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

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

+0

Спасибо! Это действительно решило! –

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