2015-10-02 3 views
0

У меня возникли проблемы с получением Cmake для работы. Я использую ROS и catkin_make. Я прочитал следующее: cmake undefined reference to function cmake undefined referenceCmake undefined ошибка ссылки

, но до сих пор не могу получить его компиляции. Я пытаюсь использовать тестирование модуля Google в своем коде. Я новичок в тестировании cmake и google. Я уверен, что у меня что-то очень малое и очевидное.
У меня есть мои тесты в одном файле «test_usbl.cpp» и основной, который должен вызывать все мои тесты.

Это мой файл:

usbl 
    ├── CMakeLists.txt 
    ├── CMakeLists.txt~ 
    ├── include 
    │   └── usbl 
    │    └── usblSim.h 
    ├── package.xml 
    ├── src 
    │   ├── usblSim.cpp 
    │   └── usblSim.cpp~ 
    └── test 
     ├── test_main.cpp 
     └── test_usbl.cpp 

и это мой CMakeList.txt:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.3) 
PROJECT(usbl) 

SET(CMAKE_CXX_FLAGS "-g -std=c++0x ${CMAKE_CXX_FLAGS}") 

FIND_PACKAGE(catkin REQUIRED COMPONENTS 
    geometry_msgs 
    roscpp 
    std_msgs 
) 

FIND_PACKAGE(GTest REQUIRED) 
FIND_PACKAGE(Boost) 
FIND_PACKAGE(Threads) 

catkin_package() 

SET(INCLUDE_DIRS 
    ${GTEST_INCLUDE_DIRS} 
    ${Boost_INCLUDE_DIRS} 
    ${catkin_INCLUDE_DIRS} 
    include/usbl 
) 

INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) 
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include/usbl) 
SET(SRC 
    ${CMAKE_CURRENT_SOURCE_DIR}/src/usblSim.cpp} 
) 
SET(LIBS 
    ${ROS_LIBRARIES} 
    ${catkin_LIBRARIES} 
    ${Boost_LIBRARIES} 
    ${GTEST_LIBRARIES} 
    ${CMAKE_THREAD_LIBS_INIT} 


) 

# simulator 
#ADD_EXECUTABLE(usblSim src/usblSim.cpp) 
add_library(usbl src/usblSim.cpp) 
#TARGET_LINK_LIBRARIES(usblSim ${LIBS}) 



SET(USBL_TEST 
    test/test_usbl.cpp 
    test/test_main.cpp 
) 

ADD_EXECUTABLE(test_usbl ${USBL_TEST}) 
TARGET_LINK_LIBRARIES(test_usbl ${LIBS}) 

Это дает мне ошибку:

CMakeFiles/test_usbl.dir/test/test_usbl.cpp.o: In function `meanTest_isEquel_Test::TestBody()': 
/home/nathaniel/Documents/usbl/src/usbl/test/test_usbl.cpp:12: undefined reference to `usblSim::usblSim()' 

ответ

0

нашел решение, было для этого:

SET(LIBS 
    ${ROS_LIBRARIES} 
    ${catkin_LIBRARIES} 
    ${Boost_LIBRARIES} 
    ${GTEST_LIBRARIES} 
    ${CMAKE_THREAD_LIBS_INIT} 
    ${PROJECT_NAME}#This is the new line 

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