导致未定义的引用错误
Cmake undefined referance error
我很难让Cmake工作。我正在使用ROS和catkin_make。我读了以下内容:对函数做未定义的引用创建未定义的引用
,但似乎仍然无法编译。我试图在我的代码上使用谷歌单元测试。我是新来的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()'
找到了解决方案,必须做到:
SET(LIBS
${ROS_LIBRARIES}
${catkin_LIBRARIES}
${Boost_LIBRARIES}
${GTEST_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
${PROJECT_NAME}#This is the new line
)
相关文章:
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- C++引用错误
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 只有级联分类器会发出未定义的引用错误
- 2个模板化类的非模板友元函数未定义引用错误
- C/C++ 取消引用错误:在空检查之前取消引用
- 为什么我的C++代码无法编译,出现未定义的引用错误
- 我的代码中C++未定义的引用错误?
- 模板专用化会导致未定义的引用错误
- .cpp文件中未定义的引用错误
- c++ 中目录中文件的未定义引用错误
- Opencv4 使用 pkg-config 给出未定义的引用错误
- 使用Cygwin C++时出现未定义的引用错误,为什么我的文件没有链接?
- 共享指针取消引用错误
- 编译简单的多文件类程序时出现未定义的引用错误
- 模板函数产生未定义的引用错误
- 调用提取重加载器会产生对"运算符"的未定义引用错误>>
- 如何修复"未定义的引用"错误 opencv 和 g++
- 未定义的引用错误,我该怎么办?