【suse系统源码安装php】【调用地图源码】【java parseint函数源码】patchelf源码

时间:2024-12-28 19:33:16 来源:迷狼指标源码 分类:焦点

1.MySQL Shell 8.0.32 for GreatSQL编译二进制包
2.linuxqt编译

patchelf源码

MySQL Shell 8.0.32 for GreatSQL编译二进制包

       构建MySQL Shell 8.0. for GreatSQL

       写在前面

       之前已经写过一篇前传 MySQL Shell 8.0. for GreatSQL编译安装,源码最近再次编译MySQL Shell二进制包时,源码发现了一些新问题,源码因此重新整理更新本文档。源码

       几处新问题

       这次编译MySQL Shell发现几个新问题,源码下面一一列举。源码suse系统源码安装php

       针对这些情况,源码为了方便社区用户,源码我直接将整个二进制包编译工作打包成Docker镜像,源码有需要的源码直接拉取镜像创建容器,只需耐心等上几分钟即可得到MySQL Shell for GreatSQL二进制包了。源码

       使用方法很简单,源码类似下面这样即可:

       接下来回退到宿主机,源码将容器中的源码二进制包拷贝出来

       然后解压缩,就可以在宿主机环境下使用了。源码调用地图源码

       说完用Docker容器构建二进制包的方法,再说下手动编译全过程,有兴趣的同学也可以跟着自己动手做一遍,增加体感。

       手动编译过程

       2.1 准备Docker环境

       参考编译环境要求参考 GreatSQL-Shell Dockerfile ,构建好一个Docker镜像环境,基本上照着做就行,java parseint函数源码这里不赘述。

       2.2 下载源码包

       先下载准备好下列几个源码包:

       下载完后都放在/opt/ 目录下,并解压缩。

       2.3 修改MySQL Shell源码包

       打开链接: gitee.com/GreatSQL/Grea...,下载GreatSQL补丁包文件 mysqlsh-for-greatsql-8.0..patch。

       为了让MySQL Shell支持GreatSQL仲裁节点(ARBITRATOR)特性,需要打上补丁包:

       2.4 编译相关软件包1..1 antlr4-4.

       编译antlr4:

       如果你的收阳指标源码网络环境无法直接从github上下载二进制包,则先自行下载二进制包 github.com/google/googl...,并放到antlr4代码包中相应位置,再修改antlr4代码,略过下载步骤,详见下面的做法:

       之后就可以用上面的方法进行编译,而不会在下载二进制包环节卡住不动。

       2.4.2 patchelf-0..5

       2.4.3 protobuf-3..4

       2.4.4 rpcsvc-proto-1.4

       编译MySQL Shell

       3.1 编译MySQL 8.0.

       在MySQL 8.0.源码目录中,销售录单源码编译生成MySQL客户端相关依赖库,这是编译MySQL Shell之前要先做的事:

       3.2 编译MySQL Shell 8.0. for GreatSQL

       编译完MySQL 8.0.后,切换到MySQL Shell源码目录下,准备继续编译:

       编译完成后,会把二进制文件安装到/usr/local/greatsql-shell-8.0.--Linux-glibc2.-x_ 目录下。

       3.3 运行测试

       运行mysqlsh测试前,还要先将libprotobuf.so动态库文件拷贝放到MySQL Shell目录下,再运行测试:

       好了,开始感受GreatSQL 8.0.-新版本特性,以及MGR仲裁节点的魅力吧 O(∩_∩)O哈哈~

       延伸阅读

       本文完。

       Enjoy GreatSQL :)

       关于GreatSQL

       GreatSQL数据库是一款开源免费数据库,可在普通硬件上满足金融级应用场景,具有高可用、高性能、高兼容、高安全等特性,可作为MySQL或Percona Server for MySQL的理想可选替换。

       相关链接

       GreatSQL社区

       Gitee

       GitHub

       Bilibili

       技术交流群

       微信:添加GreatSQL社区助手好友,微信号wanlidbc发送验证信息加群

       QQ群:

       Enjoy GreatSQL :)

       关于 GreatSQL

       GreatSQL是适用于金融级应用的国内自主开源数据库,具备高性能、高可靠、高易用性、高安全等多个核心特性,可以作为MySQL或Percona Server的可选替换,用于线上生产环境,且完全免费并兼容MySQL或Percona Server。

       相关链接: GreatSQL社区 Gitee GitHub Bilibili

       GreatSQL社区:

       社区有奖建议反馈: greatsql.cn/thread--1...

       社区博客有奖征稿详情: greatsql.cn/thread--...

       (对文章有疑问或者有独到见解都可以去社区官网提出或分享哦~)

       技术交流群:

       微信&QQ群:

       QQ群:

       微信群:添加GreatSQL社区助手(微信号:wanlidbc )好友,待社区助手拉您进群。

linuxqt编译

       linux下执行qt程序怎么编译运行?

       1、在Linux下的命令行编辑程序:#mkdirhello//mkdir命令创建一个hello目录#cdhello//cd命令切换到刚才创建的hello目录#vimain.cpp//在hello目录中用vi创建一个main.cpp文件将下面的代码输入到main.cpp文件中#include

       æ€Žæ ·åœ¨ubuntu下安装qt嵌入式?

       1cd~/Qtenv 2 3chmodu+xqt-sdk-linux-x-opensource-..bin 4 5./qt-sdk-linux-x-opensource-..bin 为了文件管理方便,将sdk也安装在Qtenv文件夹中。 2、解压源代码包 在用户目录下建立一个Qtenv目录,用于存放编译源文件。 mkdir$HOME/Qtenv 在qtembedded目录下创建arm和x目录。创建这两个目录主要是为了编译一个用户arm开发版的QTE,另一个目录用于存放用于qvfb的x下QTE,这样演示和开发都很方便。 1cd~/Qtenv 2mkdirarmx 接下来将源代码包分别复制到arm和x下并解压缩。这样做虽然浪费了一些硬盘空间(ps:在宿主机上的硬盘太不值钱了),但能为将来再配置和编译节省很多时间。 1cd~/Qtenv 2mvqt-everywhere-opensource-src-4.6.3.tar.bz2./arm 3cd~/Qtenv/arm 4tarxjvfqt-everywhere-opensource-src-4.6.3.tar.bz2 5 6cd~/Qtenv/x 7mvqt-everywhere-opensource-src-4.6.3.tar.bz2./x 8tarxjvf./x/qt-everywhere-opensource-src-4.6.3.tar.bz2 解压缩后分别针对arm平台和x平台进行配置,配置前可输入 ./configure-embedded-help 进行配置帮助查询,根据平台配置,并编译和安装文件。其命令代码如下: 1cd~/Qtenv/arm 2./configure-prefix$HOME/Qtenv/arm-embeddedarm-nomakedocs-nomakedemo-nomakeexamples 3make 4makeinstall 5 6cd~/Qtenv/x 7./configure-prefix$HOME/Qtenv/arm-embeddedx-nomakedocs-nomakedemo-nomakeexamples 8make 9makeinstall 在经过漫长的配置、编译后就完成了QTE的安装。本人在arm版的编译过程中出现过两个错误,在参考《在arm-linux-gcc3.4.1下编译qt-embedded-4.6.2》完成编译。 完成编译和安装后需要对系统的环境变量进行设置,设置可以是临时性设置和永久性设置。临时行设置是直接在命令窗口输入 1exportQTENV=$HOME/Qtenv 2exportQTXDIR=$QTENV/qtsdk 3exportQTEDIR=$QTENV/x 4exportPATH=$QTXDIR/qt/bin:$PATH 5exportLD_LIBRARY_PATH=$QTXDIR/lib:$LD_LIBRARY_PATH 6exportQVFBDIR=$QTXDIR/qt/bin 7exportQTEMAKEDIR=$QTEDIR/bin 以上这些变量可以根据自己的喜好进行增删。这种设置方法在关闭当前命令终端后失效。 第二种方式是在当前用户的主目录下,编辑.bash_profile文件,加入上述命令行,保存重启命令终端即可。

       å¦‚何在ARMLinux环境中搭建QT运行环境?

       1、可以2、QtCreator只是一个集成开发工具,这个版本随意,网上下就可以,Qte不是用最新,而是最好用跟你在Linux开台开发一样的。首先要在Linux下交叉编译Qte的库,然后再将Lib这些文件移植在板子上,最后通过交叉编译好的库去编译你在pc

       æ ‘莓派下怎样运行移植的QT程序?

       ä½ å¯ä»¥å‚考SQLiteStudio这个Qt写的跨平台SQLite管理工具,它自己打包了依赖的Qt库,可以做到解压即用,兼容不同Linux发行版.道理其实跟Windows版Qt程序自带Qt库差不多.

       ç¼–译前给连接器传一个参数:

       è¯´æ˜Ž:

       -Wl表示告诉编译器将后面的参数传递给链接器.

       rpath是gcc的一个参数,当程序被加载时,会搜寻rpath目录,寻找共享库.

       rpath添加的目录信息保存在可执行文件中.

       $ORIGIN表示可执行文件所在的目录.

       ä¹Ÿå°±æ˜¯è¿è¡Œæ—¶ç¨‹åºä¼šå…ˆåŽ»è‡ªå·±æ‰€åœ¨çš„目录的lib里去加载依赖库,没有的话再去系统库里找.

       å¦‚果你的程序在编译时没有传递rpath参数,那你也可以用patchelf来修改你程序的rpath:

       æ³¨æ„:patchelf修改文件后再strip会导致文件损坏.

       æ‰€ä»¥åº”该先用strip删除符号表缩小二进制文件,然后再用patchelf设置rpath.

       é¢˜å¤–话,Android上既没有glibc库,也没有库链接器ld-linux.so.3.

       å¦‚果你要把DebianARM(如树莓派Raspbian)上的软件放到Android上跑,你一样可以打包程序依赖的共享库,让程序也能跑在Android上,比如PHP:

       ä¹Ÿå°±æ˜¯ä½ æŠŠåº“链接器ld-linux-armhf.so.3和PHP依赖的库都放到/data/local/tmp/web/lib里,然后设置个别名,就能在Android的adbshell里运行树莓派的PHP了.

       å½“然,你也可以用patchelf设置PHP的interpreter和rpath,效果差不多:

       æ€Žæ ·äº¤å‰ç¼–译一个QT应用程序?

       1.设置环境变量:rPATH=添加为交叉环境下编译后生成的qmake路径,通常和主机的系统是一种架构,同时需要确保交叉gcc编译器在在PATH定义rQMAKESOEC=交叉编译的对象的的平台描述文件,例如makespec/qws/linux-arm-g++rQTDIR=Qt的安装文件,存放这库和头文件rLD_LIBRARY_PATH=存放的是Qt的交叉编译后的库,准备为目标编译链接的库r2。执行环境变量r通常我们都会将以上的设置放置在一个bash脚本中,需要的时候就执行一下。开始编译r1.使用qmake-project来生成项目文件****.pror2使用qmake来生成Makefile文件r3使用make来编译移植:使用readeif工具来分析目标系统的以来库,然后copy相关的库到目标文件系统内。通常我们也是采取脚本的方式来完成。r一般而言,凡是有规律的或者重复性的工作,我们都可以采取脚本的方式来解决。