尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

达成调用libchdb.a静态连接库中的未公开导出函数

达成调用libchdb.a静态连接库中的未公开导出函数
📅 发布时间:2026/6/21 23:26:25

达成调用libchdb.a静态连接库中的未公开导出函数

前文写了调用libchdb.so动态连接库中的未公开导出函数的方法,不久前chdb发布了3.6版,其中提供了静态链接库。
尝试编译一个不依赖庞大动态连接库libchdb.so的程序,获得了成功,以下是操作步骤。
1.下载chdb静态连接库

wget https://github.com/chdb-io/chdb/releases/download/v3.6.0/linux-aarch64-libchdb-static.tar.gz -c

2.解压缩

tar xf linux-aarch64-libchdb-static.tar.gz
ll
-rw-r--r-- 1 kylin kylin 14491 9月 8 16:20 chdb.h
-rw-r--r-- 1 kylin kylin 16708 9月 8 16:20 chdb.hpp
-rw-r--r-- 1 kylin kylin 1221436992 9月 8 16:05 libchdb.a

可见它包含两个头文件,和一个1.2GB的静态连接库libchdb.a。而3.5版动态连接库比这小多了,只有一个头文件chdb.h文件。

-rw-r--r-- 1 kylin kylin 10287 7月 9 16:11 chdb.h
-rwxr-xr-x 1 kylin kylin 567703784 7月 9 16:06 libchdb.so

3.用前文中同一个源程序编译目标文件

g++ -c bna.cpp

它不会检查调用的外部文件
4.将上一步的目标文件和libchdb.a链接

g++ bna.o chdba/libchdb.a -o bna

报错如下,条目很多,列举3条不同的

chdba/libchdb.a(krb5__threads.c.o):在函数‘krb5int_thread_support_init__aux’中:
(.text.krb5int_thread_support_init__aux+0x114):对‘pthread_once’未定义的引用
chdba/libchdb.a(krb5__plugins.c.o):在函数‘krb5int_open_plugin’中:
(.text.krb5int_open_plugin+0x3c):对‘dlopen’未定义的引用
chdba/libchdb.a(libclickhouse_common_io__QueryProfiler.cpp.o):在函数‘DB::Timer::set(unsigned long)’中:
(.text+0x16c):对‘timer_settime’未定义的引用

查阅资料得知,它们分别依赖动态库pthread、dl和rt,把它们都加到命令行,连接成功。

g++ bna.o chdba/libchdb.a -o bna -lpthread -ldl -lrt
ls -l bna
-rwxrwxr-x 1 kylin kylin 187010224 9月 12 13:20 bna
./bna
Addition result: 111111111011111111100
Multiplication result: 1219326311370217952237463801111263526900

链接后的文件有187MB,比静态库和动态库都小得多,当然对于这么点大数运算功能而言,还是太大了,本文仅作为技术上可实现的讨论。

相关新闻

  • Redis常用命令
  • .NET驾驭Word之力:理解Word对象模型核心 (Application, Document, Range)
  • 事件轮循机制EventLoop

最新新闻

  • FanControl深度解析:Windows平台精准风扇控制架构与技术实现
  • 2026西安防水补漏上门施工哪家强?正规商家资质+报价+口碑+售后四维实测对比 - 防水资讯
  • 从MK24FN1M到MK24FN256:嵌入式MCU型号迁移实战指南
  • 武汉市洪山区管道疏通|维小达|马桶、蹲便器、地漏、洗菜盆、洗手盆、浴缸一站式疏通养护服务 - 维小达科技
  • 武汉市青山区管道疏通|维小达|马桶、蹲便器、地漏、洗菜盆、洗手盆、浴缸一站式疏通养护服务 - 维小达科技
  • 深度学习无监督学习基于Auto-Encoder的图像压缩实验1(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_可以扫码

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号