abseil-cpp:环境搭建
参考: https://abseil.io/docs/cpp/quickstart-cmake
abseil-cpp.git/dd4c89b == abseil-cpp.git/20240722.1
1. clone代码仓库、编译
git clone https://github.com/abseil/abseil-cpp.git /app/abseil-cpp/
#/app/abseil-cpp/.git/config
git checkout 20240722.1git rev-parse HEAD
#dd4c89bd657f1e247ce5111a5c89ffe6ccfd0c92cmake -S /app/abseil-cpp -B /app/abseil-cpp/build -DABSL_BUILD_TESTING=OFF -DABSL_USE_GOOGLETEST_HEAD=ON -DCMAKE_CXX_STANDARD=14
cmake --build /app/abseil-cpp/build --target all
ls /app/abseil-cpp/absl/strings/str_split.h
2. test.cpp
#include <string>
#include <vector>
#include "absl/strings/str_split.h"#include <stdio.h>
int main(int argc, char** argv){std::vector<std::string> v = absl::StrSplit("a,b,c", ',');
printf("v[0]=%s\n",v[0].c_str());return 0;
}
3. 编译运行
/app/llvm_release_home/clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4/bin/clang++ -v -L /app/abseil-cpp/build/absl/base/ -L /app/abseil-cpp/build/absl/strings/ -l absl_base -l absl_raw_logging_internal -l absl_throw_delegate -l absl_string_view -l absl_strings_internal -l absl_strings -I /app/abseil-cpp/ test.cpp -o test.elf && ./test.elf
正常运行,并输出a
3A. 当少给 .a时 链接报错举例
/app/llvm_release_home/clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4/bin/clang++ -v -L /app/abseil-cpp/build/absl/base/ -L /app/abseil-cpp/build/absl/strings/ -L /app/abseil-cpp/build/absl/log/ -l absl_base -l absl_log_internal_format -l absl_string_view -l absl_strings_internal -l absl_strings -I /app/abseil-cpp/ test.cpp -o test.elf && ./test.elf
报错
"/usr/bin/ld" -pie -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o test.elf /lib/x86_64-linux-gnu/Scrt1.o /lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/12/crtbeginS.o -L/app/abseil-cpp/build/absl/base/ -L/app/abseil-cpp/build/absl/strings/ -L/app/abseil-cpp/build/absl/log/ -L/app/llvm_release_home/clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4/bin/../lib/x86_64-unknown-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/12 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/lib/../lib64 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/lib -L/lib -L/usr/lib -labsl_base -labsl_log_internal_format -labsl_string_view -labsl_strings_internal -labsl_strings /tmp/test-9d0c36.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/12/crtendS.o /lib/x86_64-linux-gnu/crtn.o
mold: error: undefined symbol: /app/abseil-cpp/build/absl/strings/libabsl_strings.a(str_split.cc.o): absl::lts_20240722::raw_log_internal::RawLog(absl::lts_20240722::LogSeverity, char const*, int, char const*, ...)
mold: error: undefined symbol: /app/abseil-cpp/build/absl/strings/libabsl_strings.a(str_split.cc.o): absl::lts_20240722::base_internal::ThrowStdOutOfRange(char const*)
clang-15: error: linker command failed with exit code 1 (use -v to see invocation)
3B. 报错探索并解决: nushell 在*.a中查找给定函数所在.a
nushell == /app5/nu-0.102.0-x86_64-unknown-linux-gnu/nu
3A报错缺少函数
absl::lts_20240722::raw_log_internal::RawLogabsl::lts_20240722::base_internal::ThrowStdOutOfRange
以下用nushell查找这些函数所在.a
/usr/bin/find /app/abseil-cpp/build/absl/ -name "*.a" | lines|each { |f| nm --defined-only -C $f } | str contains "absl::lts_20240722::base_internal::ThrowStdOutOfRange" | /usr/bin/grep true
# │ 8 │ true │/usr/bin/find /app/abseil-cpp/build/absl/ -name "*.a" | lines|each { |f| $f } | /usr/bin/grep " 8 "
#│ 8 │ /app/abseil-cpp/build/absl/base/libabsl_throw_delegate.a │/usr/bin/find /app/abseil-cpp/build/absl/ -name "*.a" | lines|each { |f| nm --defined-only -C $f } | str contains "absl::lts_20240722::raw_log_internal::RawLog" | /usr/bin/grep true
# │ 4 │ true │/usr/bin/find /app/abseil-cpp/build/absl/ -name "*.a" | lines|each { |f| $f } | /usr/bin/grep " 4 "
# │ 4 │ /app/abseil-cpp/build/absl/base/libabsl_raw_logging_internal.a │相关文章:
abseil-cpp:环境搭建
参考: https://abseil.io/docs/cpp/quickstart-cmake abseil-cpp.git/dd4c89b abseil-cpp.git/20240722.1 1. clone代码仓库、编译 git clone https://github.com/abseil/abseil-cpp.git /app/abseil-cpp/ #/app/abseil-cpp/.git/config git checkout 20240722.1git rev-pa…...
Centos7部署k8s(单master节点安装)
单master节点部署k8s集群(Centos) 一、安装前准备 1、修改主机名 按照资源准备修改即可 # master01 hostnamectl set-hostname master01 ; bash # node1 hostnamectl set-hostname node1 ; bash # node2 hostnamectl set-hostname node2 ; bash2、修改hosts文件 以下命令所…...
RPA 职业前景:个人职场发展的 “新机遇”
1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化(RPA)是一种通过软件机器人模拟人类操作,自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程,减少人工干预,从而提高工作…...
详解DeepSeek模型底层原理及和ChatGPT区别点
一、DeepSeek大模型原理 架构基础 DeepSeek基于Transformer架构,Transformer架构主要由编码器和解码器组成,在自然语言处理任务中,通常使用的是Transformer的解码器部分。它的核心是自注意力机制(Self - Attention),这个机制允许模型在处理输入序列时,关注序列中不同位…...
《2025年软件测试工程师面试》JAVA基础面试题
基础题 == 和 equals 的区别是什么? ==比较的是引用是否相同,比较的是对象的引用地址,如果比较的两个对象地址位不同,值相同也会返回falseequals()比较的是...
【算法学习之路】5.贪心算法
贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳!3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新…...
如何打造一个安全稳定的海外社媒账号?
您好!随着TikTok、Instagram、Facebook等海外社媒平台的迅猛发展,越来越多的个人和企业希望借助这些平台实现全球化传播。然而,注册和运营海外社媒账号的过程中,许多人频繁遭遇到封禁、限制和账号关联等问题,常常导致严…...
【Python 数据结构 5.栈】
目录 一、栈的基本概念 1.栈的概念 2.入栈 入栈的步骤 3.出栈 出栈的步骤 4.获取栈顶元素 获取栈顶元素的步骤 二、 Python中的栈 顺序表实现 链表实现 三、栈的实战 1.LCR 123. 图书整理 I 思路与算法 2.LCR 027. 回文链表 思路与算法 3.1614. 括号的最大嵌套深度 思路与算法 …...
Qt开发⑪Qt网络+Qt音视频_使用实操
目录 1. Qt 网络 1.1 UDP Socket 1.2 TCP Socket 1.3 HTTP Client 2. Qt 音视频 2.1 Qt 音频 2.2 Qt 视频 本篇完。 1. Qt 网络 和多线程类似,Qt 为了支持跨平台, 对网络编程的 API 也进行了重新封装。 实际 Qt 开发中进行网络编程,也不一定使用…...
JavaEE--计算机是如何工作的
一、一台计算机的组成部分 1.CPU(中央处理器) 2.主板(一个大插座) 3.内存(存储数据的主要模板) 4.硬盘(存储数据的主要模板) 内存和硬盘对比: 内存硬盘读写速度快慢存…...
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南
API接口:企业名称、注册号、统一社会信用代码、企业类型、成立日期和法定代表人等数据 API 接口使用指南 本文详细介绍一种基于 Web 搜索方式实现的企业信息查询接口,适用于数据补全、企业资质验证、信息查询等场景。文章内容涵盖接口功能、请求参数、返…...
微信小程序text组件decode属性的小问题
今天学习微信小程序的text组件,这个组件类似于网页制作中的span标签,内联文本只能用 text 组件,不能用 view,如 foo bar </text。 text组件常用属性如下表: 属性说明user-select文本是否可选,该属性会使…...
【计算机网络入门】初学计算机网络(九)
目录 1.令牌传递协议 2. 局域网&IEEE802 2.1 局域网基本概念和体系结构 3. 以太网&IEEE802.3 3.1 MAC层标准 3.1.1 以太网V2标准 编辑 3.2 单播广播 3.3 冲突域广播域 4. 虚拟局域网VLAN 1.令牌传递协议 先回顾一下令牌环网技术,多个主机形成…...
LeetCode 974:和可被 K 整除的子数组
974. 和可被 K 整除的子数组 - 力扣(LeetCode) 给定一个整数数组 nums 和一个整数 k ,返回其中元素之和可被 k 整除的非空 子数组 的数目。 子数组 是数组中 连续 的部分。 示例 1: 输入:nums [4,5,0,-2,-3,1], k …...
vector习题
完数和盈数 题目 完数VS盈数_牛客题霸_牛客网 一个数如果恰好等于它的各因子(该数本身除外)之和,如:6321。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述ÿ…...
001-码云操作
码云操作 一、配置公钥1.官网地址1.进入 git bash2.查看生成的公钥3.设置到 Gitee4.测试 二、初始化一个项目1.新建仓库 一、配置公钥 方便后续提交代码不用填写密码 1.官网地址 官网地址:https://gitee.com/Git码云教程:https://gitee.com/help/arti…...
数据结构:二叉搜索树(排序树)
1.二叉搜索树的定义 二叉搜索树要么是空树,要么是满足以下特性的树 (1)左子树不为空,那么左子树左右节点的值都小于根节点的值 (2)右子树不为空,那么右子树左右节点的值都大于根节点的值 &#…...
【愚公系列】《Python网络爬虫从入门到精通》036-DataFrame日期数据处理
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...
C++(蓝桥杯常考点)
前言:这个是针对于蓝桥杯竞赛常考的C内容,容器这些等下棋期再讲 C 在DEVC中注释和取消注释的方法:ctrl/ ASCII值(常用的): A-Z:65-90 a-z:97-122 0-9:48-57 换行/n:10科学计数法:eg:…...
支付宝 IoT 设备入门宝典(下)设备经营篇
上篇介绍了支付宝 IoT 设备管理,但除了这些基础功能外,商户还可以利用设备进行一些运营动作,让设备更好的帮助自己,本篇就会以设备经营为中心,介绍常见的设备相关能力和问题解决方案。如果对上篇感兴趣,可以…...
OpenClaw批量任务队列:百川2-13B-4bits量化版处理百条邮件自动回复
OpenClaw批量任务队列:百川2-13B-4bits量化版处理百条邮件自动回复 1. 为什么需要邮件自动回复系统 上周我收到了一封来自老客户的紧急咨询邮件,当时正在外地参加会议无法及时回复。等三天后回到电脑前,发现邮箱里堆积了127封未读邮件——其…...
SeqGPT-560M效果展示:跨句指代消解能力——‘该公司’→‘北京智云科技有限公司’
SeqGPT-560M效果展示:跨句指代消解能力——‘该公司’→‘北京智云科技有限公司’ 今天,我想和你聊聊一个在信息抽取领域里特别“聪明”的能力——跨句指代消解。听起来有点专业,对吧?别担心,我用大白话给你解释。 想…...
DFRobot URM07超声波传感器UART通信与温度补偿详解
1. DFRobot URM07超声波测距传感器技术深度解析1.1 产品定位与工程价值DFRobot URM07(SKU: SEN0153)是一款面向嵌入式系统设计的工业级超声波距离传感器模块,其核心价值在于将高精度测距、环境温度补偿、超低功耗与UART标准化接口四者深度融合…...
VMware 16 安装win,Win11推荐下载链接(不要选arm)
目录Win11下载链接待续、更新中......Win11下载链接 ed2k://|file|zh-cn_windows_11_consumer_editions_version_22h2_updated_sep_2022_x64_dvd_23d39103.iso|5579771904|33C7EC6485AD8C55ADFB550FA1A0F270|/ 待续、更新中… 1 顿号、: 先使用ctrl. ,再使用一遍切…...
从零构建uWSGI-Nginx-Flask-Docker镜像的5个核心步骤
从零构建uWSGI-Nginx-Flask-Docker镜像的5个核心步骤 【免费下载链接】uwsgi-nginx-flask-docker Docker image with uWSGI and Nginx for Flask applications in Python running in a single container. Optionally with Alpine Linux. 项目地址: https://gitcode.com/gh_mi…...
从 Python 和 Node.js 的流行看 Java 的真实位置
很多 Java 程序员都会有一个感觉:Python 很火,Node.js 也很火,Java 是不是没落了? 先说结论:Java 没有没落,只是位置变了。一、为什么 Python 和 Node.js 看起来更火 1. Python 火,是因为 AI 太…...
别再只会用中断了!用状态机查表法搞定AB相编码器,STM32代码实测(附防抖技巧)
状态机查表法在AB相编码器中的工程实践与优化 记得第一次在电机控制项目中使用旋转编码器时,我整整花了三天时间调试中断服务程序。每当电机转速提高,计数器就会莫名其妙地漏脉冲或跳变。直到发现状态机查表法这个"神器",才真正解决…...
sinx/x在0到无穷积分的条件收敛性分析与证明
1. 从物理现象到数学问题:为什么研究sinx/x的积分? 我第一次接触sinx/x的积分是在信号处理课程中,这个看似简单的函数在傅里叶变换和频谱分析中扮演着关键角色。工程师们用它来描述理想低通滤波器的频率响应,物理学家则在衍射现象…...
deepseek硬件电路实战:构建pA级电流测量系统的核心技术与工程实践
1. 从理论到实践:pA级电流测量的核心挑战 测量皮安级电流就像在暴风雨中听清一根针落地的声音。我十年前第一次尝试做这种高精度测量时,连示波器上全是噪声信号,根本分不清哪些是真实信号。pA级测量最核心的挑战在于,我们要测量的…...
深入解析SCB_AIRCR:STM32中断与复位控制的关键寄存器
1. SCB_AIRCR寄存器:STM32的中枢神经 第一次接触STM32的中断系统时,我对着密密麻麻的寄存器列表发懵,直到发现了SCB_AIRCR这个"控制中枢"。它就像城市交通指挥中心,决定着所有中断车辆的通行规则。这个位于0xE000ED00地…...
