【问题标题】:Cmake undefined referance errorCmake未定义的引用错误
【发布时间】:2015-10-02 02:39:50
【问题描述】:

我无法让 Cmake 正常工作。我正在使用 ROS 和 catkin_make。我已阅读以下内容: cmake undefined reference to function cmake undefined reference

但似乎仍然无法编译。我正在尝试对我的代码使用 Google 单元测试。我是 cmake 和谷歌测试的新手。我确信我遗漏了一些非常小而明显的东西。
我的测试在一个文件“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()'

【问题讨论】:

    标签: c++ cmake googletest catkin


    【解决方案1】:

    找到解决方案,必须解决:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-20
      • 2016-06-10
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2021-01-11
      • 2016-06-22
      • 2020-10-29
      相关资源
      最近更新 更多