CMake 链接时出现undefined reference to 错误

一、问题背景

之前新建了一个项目项目文件分布为

1. src/MROR.cpp

2.include/MROR.h

3.main.cpp

执行cmake出现undefined reference toxx,显示main函数中的类成员函数调用没有声明,但是所有声明已经在MROR.h中写了

二、解决方法

我查了很多网上资料

解决方法

1) 可能MROR.cpp文件没有链接到项目,且cpp文件中含pcl库,可能未编译链接

include_directories(${PCL_INCLUDE_DIRS} include)

add_library(${PROJECT_NAME}_core src/MROR.cpp)	

target_link_libraries(${PROJECT_NAME}_core ${PCL_LIBRARIES})

add_executable(MROR_exe main.cpp src/MROR.cpp)

target_link_libraries(MROR ${PCL_LIBRARIES} ${PROJECT_NAME}_core)

结果还是报错

2) 可能项目中使用了函数模板,导致cmake报错失败。

将cpp实现文件与h文件合并为hpp。

include_directories(
			${PCL_LIBRARIES}
			include)

find_package(PCL 1.8 REQUIRED)

#生成链接库
add_library(${PROJECT_NAME}_core include/MROR.hpp)	

#生成可执行文件
add_executable(MROR_exe main.cpp)

set_target_properties(${PROJECT_NAME}_core PROPERTIES LINKER_LANGUAGE CXX)

target_link_libraries(MROR_exe ${PCL_LIBRARIES} ${PROJECT_NAME}_core) 

结果成功解决

猜你喜欢

转载自blog.csdn.net/qq_42373896/article/details/129989944