编译常见问题汇总

1、thread初始化错误,
usr/bin/ld: lcmmer.o: undefined reference to symbol 'pthread_create@@GLIBC_2.2.5' //lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
在这里插入图片描述
根据以上提示,在libpthread.so.0中的错误,解决方法:
在编译时引用pthread库,qmake:LIBS += -lpthread; cmake: target_link_libraries( ${PROJECT_NAME} pthread)

2、/error: binding ‘const std::mutex’ to reference of type ‘std::lock_guardstd::mutex::mutex_type& {aka std::mutex&}’ discards qualifiers std::lock_guardstd::mutex lock(mutex_);
想要在const类型的成员函数中加入线程锁,但是const内禁止成员变量的更改。
在这里插入图片描述
可以将变量定义为mutable,即可在const函数内改变其之。
在这里插入图片描述
关于mutable
3、关于基类子类相互引用头文件的问题
: error: expected class-name before ‘{’ token
class AstarSearcher : public Searcher { ^
error: invalid use of incomplete type ‘class Searcher’
class AstarSearcher : public Searcher {
^
基类为Searcher,子类为AstarSearcher , 在基类Searcher.h头文件中引用了子类AstarSearcher头文件AstarSearcher.h,出现以上两类错误。这属于前置申明的问题。而前置申明后,也会不完整的类型(尽管你有前置声明)
推荐!!! https://blog.csdn.net/yunyun1886358/article/details/5672574理解前置申明。
问题与这个博文相似https://blog.csdn.net/qq_26973089/article/details/85052168,解决方法。
4、继承时出现如下错误:
C++ 继承子类链接时 :·error: undefined reference to vtable for class
可能是未对析构函数进行实现。在子类的析构函数后加上{},或者定义以下即可。
参考https://blog.csdn.net/ai2000ai/article/details/47317863

5、编译出现如下错误:error: ‘uint8_t’ has not been declared等等一系列引用的标准库函数缺没有定义。
可能原因:1、未引用;2、引用的头文件在自己的命名空间里面。

头文件的引用必须在所有命名空间以外

6、ifstream引用了提示不完整
error: variable ‘std::ifstream grab’ has initializer but incomplete type
std::ifstream grab(filename);
在这里插入图片描述
因为只是引用了#include <iostream> , 虽然都能够找到定义的变量,但是仍更改为#include <fstream>
原因不详。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是PCAN二次开发常见问题汇总: 1. 如何安装PCAN驱动程序? 在安装PCAN驱动程序之前,请确保您已经安装了正确的硬件设备。然后,您可以按照以下步骤安装PCAN驱动程序: - 下载并运行PCAN驱动程序安装程序。 - 选择要安装的驱动程序版本。 - 安装驱动程序并重启计算机。 2. 如何使用PCAN Basic API? PCAN Basic API是PCAN驱动程序的一部分,它提供了使用CAN总线进行通信的基本函数。以下是使用PCAN Basic API的基本步骤: - 打开CAN通道。 - 配置CAN通道参数,如波特率和滤波器。 - 发送CAN消息。 - 接收CAN消息。 - 关闭CAN通道。 3. 如何使用PCAN Explorer? PCAN Explorer是一款用于配置和测试CAN总线的工具。以下是使用PCAN Explorer的基本步骤: - 打开PCAN Explorer。 - 连接到CAN总线。 - 配置CAN总线参数,如波特率和滤波器。 - 发送CAN消息。 - 接收CAN消息。 4. 如何解决PCAN驱动程序无法安装的问题? 如果您安装PCAN驱动程序时遇到问题,可以尝试以下方法来解决: - 确保您有管理员权限。 - 禁用防病毒软件。 - 确保您下载的是最新版本的PCAN驱动程序。 - 检查计算机的系统日志以查看是否有任何错误消息。 5. 如何解决PCAN Basic API无法编译的问题? 如果您在编译PCAN Basic API时遇到问题,可以尝试以下方法来解决: - 确保您已经正确安装了PCAN驱动程序。 - 确保您已经正确配置了编译器和链接器。 - 检查PCAN Basic API文档以查看是否有任何错误或警告消息。 - 在PCAN Basic API源代码中使用调试器来查找问题。 希望以上内容能够对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值