C++常见异常汇总(三): fatal error: google/protobuf/port_def.inc

2024-09-08 02:36

本文主要是介绍C++常见异常汇总(三): fatal error: google/protobuf/port_def.inc,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1、fatal error : sw/redis++/redis.h
    • 2、fatal error: dwarf.h: No such file or directory
    • 3、fatal error: elfutils/libdw.h: No such file or directory
    • 4、fatal error: libunwind.h: No such file or directory
    • 5、fatal error: google/protobuf/port_def.inc
    • 6、error adding symbols: DSO missing from command line
    • 7、undefined reference to `timer_settime'
    • 8、fmt error: type_identity_t、basic_format_args

1、fatal error : sw/redis++/redis.h

需安装Redis C++ 相关环境。
git 搜索 hiredis、redis-plus-plus 源码,并执行如下命令:


unzip hiredis.zip -d ./ && cd hiredis && make -j12 && make install && cd .. && unzip redis-plus-plus.zip -d ./ && cd redis-plus-plus && \
mkdir build && cd build && cmake .. && make -j12 && make install

在这里插入图片描述在这里插入图片描述

2、fatal error: dwarf.h: No such file or directory

在这里插入图片描述

处理方案:

sudo apt install libdwarf-dev

在这里插入图片描述安装后,由于安装目录为: ./libdwarf/dwarf.h

在这里插入图片描述
CMakeList.txt 中Include:

在这里插入图片描述

3、fatal error: elfutils/libdw.h: No such file or directory

sudo apt-get install libdw-dev

如果还是不行,再执行如下:

sudo apt-get update
sudo apt-get install libelf1

在这里插入图片描述在这里插入图片描述

4、fatal error: libunwind.h: No such file or directory

sudo apt-get install libunwind-dev

在这里插入图片描述

5、fatal error: google/protobuf/port_def.inc

原因:Protobuf 路径在CMakeList中未正确配置

分别尝试不同颜色框中的方式:
在这里插入图片描述

6、error adding symbols: DSO missing from command line

原因: target_link_libraries 未连接正确

在这里插入图片描述在这里插入图片描述请检查 CMakeList.txt 中的 target_link_libraries
在这里插入图片描述

7、undefined reference to `timer_settime’

处理方案:增加 rt 连接库即可。

    target_link_libraries(sample  rt  )

在这里插入图片描述
在这里插入图片描述

8、fmt error: type_identity_t、basic_format_args

原因:spdlog 未找到自身目录下的fmt头文件,而是找到了系统目录下的头文件
在这里插入图片描述
解决方案:
(1)使用spdlog源码,编译到工程中;

(2)确保使用spdlog的代码,只在.cpp 中包含 spdlog 的头文件,在.h文件中,使用前置定义的方式,以减少头文件之间的关联依赖,确保被外部调用时,不依赖spdlog相关.h:

例如:

a.h 中:

namespace spdlog
{class logger;
}class A
{
public:A();private: std::shared_ptr<spdlog::logger> logger_main_;};

a.cpp 中:


#include "spdlog/spdlog.h"
#include "spdlog/sinks/rotating_file_sink.h" // support for rotating file loggingA::A()
{= auto sink_main = std::make_shared<spdlog::sinks::rotating_file_sink_mt>(log_path + "main.txt", 1024 * 1024 * 4, 10);sink_main->set_level(log_level_temp);spdlog::sinks_init_list sink_main_list = { sink_main };logger_main_ = std::make_shared<spdlog::logger>("main", sink_main_list.begin(), sink_main_list.end());logger_main_->set_level(log_level_temp);logger_main_->flush_on(log_level_temp);//Note:logger_main_->info(" hi you  ");}

这篇关于C++常见异常汇总(三): fatal error: google/protobuf/port_def.inc的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146871

相关文章

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

maven异常Invalid bound statement(not found)的问题解决

《maven异常Invalidboundstatement(notfound)的问题解决》本文详细介绍了Maven项目中常见的Invalidboundstatement异常及其解决方案,文中通过... 目录Maven异常:Invalid bound statement (not found) 详解问题描述可

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

C++打印 vector的几种方法小结

《C++打印vector的几种方法小结》本文介绍了C++中遍历vector的几种方法,包括使用迭代器、auto关键字、typedef、计数器以及C++11引入的范围基础循环,具有一定的参考价值,感兴... 目录1. 使用迭代器2. 使用 auto (C++11) / typedef / type alias

SpringBoot项目整合Netty启动失败的常见错误总结

《SpringBoot项目整合Netty启动失败的常见错误总结》本文总结了SpringBoot集成Netty时常见的8类问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一、端口冲突问题1. Tomcat与Netty端口冲突二、主线程被阻塞问题1. Netty启动阻

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

C++ scoped_ptr 和 unique_ptr对比分析

《C++scoped_ptr和unique_ptr对比分析》本文介绍了C++中的`scoped_ptr`和`unique_ptr`,详细比较了它们的特性、使用场景以及现代C++推荐的使用`uni... 目录1. scoped_ptr基本特性主要特点2. unique_ptr基本用法3. 主要区别对比4. u