Cmake неопределенная ошибка ссылки

У меня проблемы с тем, чтобы заставить Cmake работать. Я использую ROS и catkin_make. Я прочитал следующее:
cmake неопределенная ссылка на функцию
cmake неопределенная ссылка

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

)
0

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

Других решений пока нет …