CMake 链接时出现undefined reference to 错误

这篇具有很好参考价值的文章主要介绍了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) 

结果成功解决文章来源地址https://www.toymoban.com/news/detail-699098.html

到了这里,关于CMake 链接时出现undefined reference to 错误的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • undefined reference to `__android_log_print‘

    今天给JNI的C代码添加“__android_log_print”日志打印,发现报错。 这里对原因进行分析 build.gradle中 CCallJava.c(JNI文件中) so文件没有没有添加log的链接库,添加“LOCAL_LDLIBS := -llog”即可

    2024年01月20日
    浏览(86)
  • 【debug】OpenCV出现问题:undefined reference to ‘cv::Mat::Mat()‘

    参考:动手学ROS2 分析原因: undefined reference to \\\'cv::Mat::Mat()\\\' 原因在于g++找不到库文件,解决方法就是我们帮助它定位到库文件的位置,并通过-L参数指定库目录,-l(小写L)指定库的名字。 解决方法: 在执行命令时添加后缀参数

    2024年02月08日
    浏览(40)
  • openssl库HMAC使用 undefined reference to `HMAC_CTX_new‘

    由于使用的openssl库版本的问题 HMAC_CTX *HMAC_CTX_new(void) 为OpenSSL 1.1.0后开始引入的函数,老的库要使用 void HMAC_CTX_init(HMAC_CTX *ctx) 。 函数原型 官网介绍 使用 HMAC的实现在crypto/hmac/hmac.c中,如下: evp_md指明HMAC使用的摘要算法; key为秘密密钥指针地址; key_len为秘密密钥的长度;

    2024年02月11日
    浏览(49)
  • yolov8使用C++推理的流程及注意事项  undefined reference to `xxxxx‘

    1.下载yolov8项目源码GitHub - ultralytics/ultralytics: NEW - YOLOv8 🚀 in PyTorch ONNX OpenVINO CoreML TFLite  2.下载opencvReleases - OpenCV,建议版本=4.7.0,选择下载源码, windows版本由于使用的编译器与我们所使用的mingw不一致,后续会出现错误,所以我们选择自己编译 3.下载cmake编译工具,添加到环

    2024年02月11日
    浏览(36)
  • Qt 编译纯c的C99的项目, error: undefined reference to `f()‘

    把Cpp的后缀该为C是什么样的 尝试引用一个奇门排盘的c程序,在git上找到的叫cqm, 然后总是报错 error: undefined reference to `f()\\\' 很是郁闷 于是新建了个项目试验一下,终于摸清了需要命名空间。 后来这么写就可以了 a.h  a.cpp (c文件不支持命名空间!) test.cpp 引用的cpp

    2024年02月07日
    浏览(48)
  • 调用OpenCV库出现: undefined reference to `xxxxx‘ 的解决办法(使用MinGW编译器)

    我的CMakeLists.txt如下: cpp代码如下: 因为我的c++程序采用mingw64编译,所以使用 之后,总是出现undefined reference to cv::Mat::Mat()等一系列的undefined reference to XXX 原因是没有正确链接到动态库。或者之前有安装其他版本的opencv 重新编译一份OpenCV的源码再使用 编译过程参考: https

    2024年02月05日
    浏览(60)
  • centos7 编译bluez ARM版本及undefined reference to `g_thread_new‘

            在我辛辛苦苦编译成功 glib 库后(看我上一篇文章 centos7 glib2.0 arm版本的编译),以为可以顺利编译我的 bluez ARM 版本,结果出现了最后一个错误(其中一个是私有库里的),如: 就是这个 g_thread_new 没有找到实现,然后在网上搜了半天,都说是 glib 库里的实现,但

    2024年02月07日
    浏览(35)
  • undefined reference to `dlopen‘ ‘SSL_library_init‘ `X509_certificate_type‘

    使用Crow的时候需要注意crow依赖asio依赖OpenSSL,asio要求1.22以上版本,我使用的是1.26.0; 这个版本的asio要求OpenSSL是1.0.2,其他版本我得机器上编不过,ubuntu上默认带的OpenSSL是1.1.1; 所以我下载了OPENSSL1.2.0重装,地址: https://www.openssl.org/source/old/ 编译cpp启用Crow的SSL时会出现一些

    2024年02月13日
    浏览(36)
  • error: undefined reference to ‘cv::Mat::~Mat()‘解决AndroidStudio集成OpenVC出现的编译报错问题

    本来这种类型的博客不是笔者想写的,不过这个问题,笔者经过网上一番搜索却没有可用的解决方案,因此分享出来帮助大家填坑。 OpenCV官方的Android SDK在这里下载,集成方法就不多介绍了,可以看这两位博主的文章:  小小情意的​ Android 接入 OpenCV库的三种方式 ​  春末

    2024年02月07日
    浏览(43)
  • 解决异步传参时出现 “TypeError: Cannot read properties of undefined (reading‘xxx‘)“这一错误

    异步传参时会出现 “TypeError: Cannot read properties of undefined (reading‘xxx‘)“这一错误 例如:Cannot read properties of undefined (reading ‘id’) 出现该错误的原因是因为花括号中的某些属性未定义。很有可能是因为写错了属性名称 异步请求获取数据时,由于数据时异步获取的,所以一开

    2024年02月11日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包