Tars C++版本的编译及相关教程

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Tars C++版本的编译及相关教程

前言,什么是tars?


https://github.com/TarsCloud/Tars/blob/master/Introduction.md


https://github.com/TarsCloud/Tars/blob/master/Install.zh.md



1、环境准备


CentOS7,CMake编译器


(1)先安装mysql server


centos7安装mysql5.7.18完整实用教程(★firecat推荐★)


(2)再安装mysql client


Mysql使用官方c语言版本客户端,不使用c++库,因为c++库依赖boost库


Linux安装mysql时,有这个包,mysql-community-devel-5.7.18-1.el7.x86_64.rpm -- 里面内容是c语言版本的客户端库函数和头文件


注:c语言客户端默认安装位置是


头文件 /usr/include/mysql


静态和动态库 /usr/lib64/mysql


https://downloads.mysql.com/archives/community/


2、Tars源码下载


(1)https://github.com/TarsCloud/TarsFramework


(2)https://github.com/TarsCloud/TarsCpp


(3)https://github.com/TarsCloud/TarsProtocol


(4)https://github.com/Tencent/rapidjson


把Tarscpp和rapidjson文件夹解压,分别拷贝入以下路径:


/TarsFramework/tarscpp/

/TarsFramework/thirdparty/rapidjson


把TarsProtocol解压,拷贝入/TarsFramework/tarscpp/servant/protocol


image.png



3、修改源码


/TarsFramework/CMakeLists.txt,指定咱自己的mysql客户端安装路径


set(MYSQL_DIR_INC "/usr/include/mysql") #firecat

set(MYSQL_DIR_LIB "/usr/lib64/mysql")

#set(MYSQL_DIR_INC "/usr/local/mysql/include") #old

#set(MYSQL_DIR_LIB "/usr/local/mysql/lib")

/TarsFramework/tarscpp/util/src和include


tc_mysql.cpp


//#include "errmsg.h"

#include <mysql/errmsg.h> //firecat


tc_mysql.h


//#include "mysql.h"

#include <mysql/mysql.h>  //firecat



4、CMake编译,通过


我用的是QtCreator作为IDE,生成的结果文件在路径:


/build-TarsFramework-Desktop_Qt_5_9_7_GCC_64bit-Debug/deploy


/build-TarsFramework-Desktop_Qt_5_9_7_GCC_64bit-Debug/tarscpp/tools




---


https://github.com/TarsCloud/Tars -- 重量级rpc


https://github.com/TarsCloud/TarsDocker -- docker,由于管理平台和基础服务安装配置太复杂,所以搞了个镜像


相关教程


https://blog.csdn.net/cyblueboy83


https://blog.csdn.net/swartz2015/article/category/7739457


https://blog.csdn.net/stpeace/article/category/7554860/1

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
27天前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
138 64
|
28天前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
167 63
|
6天前
|
自然语言处理 编译器 Linux
|
4月前
|
消息中间件 Java C语言
消息队列 MQ使用问题之在使用C++客户端和GBase的ESQL进行编译时出现core dump,该怎么办
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
11天前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
|
30天前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
89 21
|
19天前
|
算法 数据挖掘 Shell
「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda
还在为生信软件的安装配置而烦恼?micromamba(micromamba是mamba包管理器的小型版本,采用C++实现,具有mamba的核心功能,且体积更小,可以脱离conda独立运行,更易于部署)帮你解决!
44 1
|
29天前
|
Linux 编译器 C语言
Linux c/c++之多文档编译
这篇文章介绍了在Linux操作系统下使用gcc编译器进行C/C++多文件编译的方法和步骤。
36 0
Linux c/c++之多文档编译
|
1月前
|
存储 C++
c++的指针完整教程
本文提供了一个全面的C++指针教程,包括指针的声明与初始化、访问指针指向的值、指针运算、指针与函数的关系、动态内存分配,以及不同类型指针(如一级指针、二级指针、整型指针、字符指针、数组指针、函数指针、成员指针、void指针)的介绍,还提到了不同位数机器上指针大小的差异。
28 1
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
156 0
vsCode远程执行c和c++代码并操控linux服务器完整教程