其他分享
首页 > 其他分享> > Clion远程编译调试 ClickHouse

Clion远程编译调试 ClickHouse

作者:互联网

Clion远程编译调试 ClickHouse

参考:Clion远程调试C++

Clion远程调试的两种方法:

  1. Clion本地与服务器端代码同步后,服务器端通过gdbserver监听端口,本地Clion连接调试
  2. Clion通过Toolchains实现远端执行调试

(方法一未实践,感觉略繁琐,此处使用方法二)

1 下载ClickHouse代码

此处将代码解压在本地:/Users/wyj/my_project/ClickHouse

同时,上传至服务器:/mnt/ClickHouse

服务器项目目录下创建.clion.source.upload.marker文件

ssh ubuntu@10.10.7.2
touch /mnt/ClickHouse/.clion.source.upload.marker

可以不上传至服务器,但会导致本地项目编译时upload至服务器巨长时间。

若代码在本地和服务器都存在,则可通过此步骤,解决第一次编译时upload很慢问题。

参考:Remote project file transfer is slow

2 Clion配置

配置Toolchains:Preferences->Build,Execution,Deployment->Toolchains

ClickHouse需要至少gcc11、g++11,如果默认不是这个版本,这里可以指定一下

image-20220111171634881

配置CMake:Preferences->Build,Execution,Deployment->CMake

  1. 如果需要Cmake 有-DCMAKE_BUILD_TYPE=Debug 参数,设定Build type为Debug
  2. Toolchain选择我们上一步设置好的Toolchain
  3. ClickHouse使用Ninja编译,这里Generator选择Ninja,相当于Cmake添加-G Ninja参数(cmake命令后会生成ninja规则)
  4. Build directory可设置build目录名称
image-20220111172944320

配置Deployment:Preferences->Build,Execution,Deployment->Deployment

image-20220111174115519 image-20220111174326259

点击apply后,会自动开始cmake。

若要在服务器端直接编译:

cmake后,在/mnt/ClickHouse/cmake-build-debug 目录下直接运行ninja

(因为cmake ... -G Ninga 已经创建了build.ninja、rules.ninja)

3 设置项目更改自动同步服务器

勾选 Tools->Deployment->Automatic Upload(Always)

image-20220111175826997

4 调试 ClickHouse(Clion调试)

点击右上角,选择Edit Configuration

image-20220111181723849

clickhouse-server:

  1. 找到名为 clickhouse-server 的 Target
  2. Executor 选择 clickhouse 执行文件
  3. 设置执行参数:server --config-file=/mnt/ClickHouse/temp_data/config.xml
image-20220111181651522

config.xml文件模板在 ClickHouse/programs/server/config/xml

(需要更改其中注明的一些数据地址为本项目实际要存放的地址,如下图)

image-20220111181233728

clickhouse-client:

  1. 找到名为 clickhouse-client 的 Target
  2. Executor 选择 clickhouse 执行文件
  3. 设置执行参数:client
    • 默认用户为default,密码为空。设置用户-u username,设置密码 --password 123
image-20220111182135578

用户信息由server的config.xml文件指定。用户的users.xml模板在ClickHouse/programs/server/users.xml

image-20220111182541752

以上,已设置好server和client,可直接在Clion进行运行/断点调试。

5 调试 ClickHouse(服务器直接调试)

在服务器上调试ClickHouse,第一次时需要通过ninja命令编译项目。

ClickHouse的可执行文件在:/mnt/ClickHouse/cmake-build-debug/programs 目录下:

(/mnt/ClickHouse/cmake-build-debug为编译目录)

image-20220111180817012

执行文件clickhouse,运行后有很多供参数选择,输入不同的参数会去执行对应的可执行文件:

image-20220111181331927

运行server:

clickhouse-server --config=/mnt/ClickHouse/temp_data/config.xml  # 方一
clickhouse server --config=/mnt/ClickHouse/temp_data/config.xml  # 方二

运行client:

clickhouse client # -u username 设置用户;--password 123 设置密码

PS 服务器更新 gcc、g++

1 添加 ppa 到库

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update 
sudo apt install gcc-11 g++-11

2 更换ppa源(因为ppa太慢了)

ustc镜像就有ppa的反向代理。

每个ppa都会在/etc/apt/sources.list.d 目录下创建一个list文件。

只需要将其中的http://ppa.launchpad.net替换为http://launchpad.proxy.ustclug.org就行。

sudo vi /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-focal.list 
sudo apt-get update 

3 设置 gcc

# 首先要让系统知道我们安装了多个版本的g++
# 命令最后的 100是优先级,如果使用auto选择模式,系统将默认使用优先级高的
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 100
# 使用交互方式的命令选择默认使用的版本
sudo update-alternatives --config gcc
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 100
sudo update-alternatives --config g++
# 其他命令:
# 查询系统中安装有哪些版本
sudo update-alternatives --query g++

设置完成后,可执行 gcc --version 查看gcc版本。

标签:--,Clion,server,编译,ClickHouse,config,clickhouse
来源: https://www.cnblogs.com/angelia-wang/p/15789616.html