首页 > 其他分享 >bear静态编译不成功记录

bear静态编译不成功记录

时间:2023-04-06 13:22:55浏览次数:28  
标签:bin x86 lib 静态 share bear 编译 64

一直想在ubuntu低版本中使用高版本bear,花了两天时间从ubuntu22.10环境成功编译出相关静态可执行文件

 /home/share/stage ✘ tree -L 3
.
├── bin
│   ├── bear
│   ├── citnames
│   └── intercept
├── lib
│   └── bear
│       ├── libexec.so
│       ├── wrapper
│       └── wrapper.d
└── share
    └── man
        └── man1
 /home/share/stage ✘ file bin/*
bin/bear:      ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=042463e3327e500083bcf2d059b2148bcd91b566, for GNU/Linux 3.2.0, not stripped
bin/citnames:  ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=2bd0204f81e1cc931e7dff102b9d88efba16b388, for GNU/Linux 3.2.0, not stripped
bin/intercept: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=113e9edfc690df600527799ff0e0777a19969716, for GNU/Linux 3.2.0, not stripped

本来以为成功,便在ubuntu18.04环境下验证,显示版本均正常

 /home/share/stage ✘ ./bin/bear --version
bear 3.0.20
 /home/share/stage ✘ ./bin/intercept --version
intercept 3.0.20
 /home/share/stage ✘ ./bin/citnames --version
citnames 3.0.20
 /home/share/stage ✘

但是最终测试功能却异常,原因如下

 /home/share/stage ✘ ldd ./lib/bear/libexec.so
./lib/bear/libexec.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./lib/bear/libexec.so)
./lib/bear/libexec.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./lib/bear/libexec.so)
        linux-vdso.so.1 (0x00007ffc24e50000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fd9bdf49000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd9bdb58000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd9bd7ba000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fd9be2d2000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fd9bd5a2000)
 /home/share/stage ✘

总结如下
1、需要使用对应开发环境进行编译
2、需要移植海量依赖库

个人已经放弃不再折腾,记录一下供类似需求的参考

标签:bin,x86,lib,静态,share,bear,编译,64
From: https://www.cnblogs.com/rdwr/p/17292460.html

相关文章

  • python中的全局变量、实例变量、局部变量、静态变量等
    a=1#全局变量,在模块内、在所有函数外面、在class外面classTest():c=3#静态变量,也可以说类属性,在class内的,但不在class的方法内的deflogin(self):b=2#局部变量,在函数内、在class的方法内(未加self修饰的)self.d=4#实例变量,也可以说实例属性,在class的......
  • Nginx安装与启停(rpm方式、免编译)
    一、安装包下载地址:http://nginx.org/packages/本文下载:http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.16.1-1.el7.ngx.x86_64.rpm二、安装#上传nginx-1.16.1-1.el7.ngx.x86_64.rpm至服务器后,安装rpm-ivh--nodepsnginx-1.16.1-1.el7.ngx.x86_64.rpm安装后目......
  • nginx编译安装
    常用版本介绍开源版https://nginx.org/纯净版,做二次开发难度较大商业版https://www.nginx.com/集成了大部分功能,可以直接使openrestyhttps://openresty.org/cn/通过Lua扩展NGINX实现的可伸缩的Web平台Tenginehttps://tengine.taobao.org/Tengine是由......
  • Linux|简单的内核编译安装图解
    编译安装内核5.4.69图解内核的重要性不需多说,大家都懂,有些软件对内核版本是有要求的,比如comodo杀毒软件,或者出于提高系统安全性的需求,提高内核版本,比如,将内核版本从3.10.936 提高到3.10.0-1062版本,以利用新的内核的安全补丁,消除一些安全bug。有鉴于此,会内核编译安装是一个现实的需......
  • 如何在ubuntu22下安装docker版的golang来编译go语言写的代码
    为了让我们的ubuntu22系统更干净清爽我们使用docker首先使用snapinstalldocker安装docker后即可使用docker了docker命令的使用方法1:将你的代码下载到用户目录(~)下面(例如~/github/xixi/...)2:使用cd命令进到你代码需要运行gobuild的文件夹3:然后使用下面命令即可给你的代码编译......
  • 10静态路由原理及配置
    1.路由:从源主机到目标主机的转发过程(路由器就是能够将数据包转发到正确的目的地,并在转发的过程中选择最佳路径的设备就是路由器)2.根据路由表转发数据1网段要给4网段发送消息:主机1的数据首先到路由器A这里,路由器A这里首先会查询路由器表,查看自己的路由表中数据发送到4网段数......
  • ubuntu虚拟机(vmware)设置静态ip
    最近家里的虚拟机ip每次打开电脑都会变化,为了防止不必要的麻烦,这里记录一下设置静态ip的方式首先还是查看一下虚拟机当前的ip使用ifconfig如下所示一般如果用的是vmware的虚拟机的话,网关最后一个会是.2,正常情况都是如此,当然保险起见可以看一下,在编辑中查看虚拟网络编辑器,之......
  • C语言 静态变量的初始化
    一、C程序的内存分布C程序由下面5部分组成正文段(.text):通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域属于只读。在代码段中,也有可能包含一些只读的常量,例如字符串常量等。初始化数据段(.data):通常是指用来存放程序中已初......
  • 关于vs生成静态库文件并使用
    开发豆之助桌宠(QT)时想加一个二维码生成功能,于是想引入qrencode库,找到了其原文件,直接把整个文件加到工程项目太过笨重,于是我想用vs生成lib引入。生成时遇到很多问题并一一解决1.在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include"pch.h"?解决方法:1)在解决方......
  • C/C++编译过程
    1.预处理 将.c中的头文件、宏展开生成的文件是.i文件gcc-Ehello.c-ohello.i2.编译将预处理后的.i文件生成.s汇编文件gcc-Shello.i-ohello.s3.汇编将.s文件生成.o目标文件gcc-chello.s-ohello.o4.链接将.o文件链接成可执行文件gcc-chello.o-ohello......