Clion远程编译调试 ClickHouse
作者:互联网
Clion远程编译调试 ClickHouse
参考:Clion远程调试C++
Clion远程调试的两种方法:
- Clion本地与服务器端代码同步后,服务器端通过gdbserver监听端口,本地Clion连接调试
- 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很慢问题。
2 Clion配置
配置Toolchains:Preferences->Build,Execution,Deployment->Toolchains
- 点加号,添加一个 Remote Host
- Credentials 设置服务器信息
- 其他配置会自动检测
ClickHouse需要至少gcc11、g++11,如果默认不是这个版本,这里可以指定一下
配置CMake:Preferences->Build,Execution,Deployment->CMake
- 如果需要Cmake 有
-DCMAKE_BUILD_TYPE=Debug
参数,设定Build type为Debug
- Toolchain选择我们上一步设置好的Toolchain
- ClickHouse使用Ninja编译,这里Generator选择
Ninja
,相当于Cmake添加-G Ninja
参数(cmake命令后会生成ninja规则) - Build directory可设置build目录名称
配置Deployment:Preferences->Build,Execution,Deployment->Deployment
-
若前两步配置好了,此处会自动出现一个Remote development
-
设置Mapping:Local path为本地项目根目录,Deployment path为服务器对应项目根目录
默认 Deployment path 为/tmp/randomNumber
点击apply后,会自动开始cmake。
若要在服务器端直接编译:
cmake后,在/mnt/ClickHouse/cmake-build-debug 目录下直接运行
ninja
(因为cmake ... -G Ninga 已经创建了build.ninja、rules.ninja)
3 设置项目更改自动同步服务器
勾选 Tools->Deployment->Automatic Upload(Always)
4 调试 ClickHouse(Clion调试)
点击右上角,选择Edit Configuration
:
clickhouse-server:
- 找到名为 clickhouse-server 的 Target
- Executor 选择
clickhouse
执行文件 - 设置执行参数:server --config-file=/mnt/ClickHouse/temp_data/config.xml
config.xml文件模板在 ClickHouse/programs/server/config/xml
(需要更改其中注明的一些数据地址为本项目实际要存放的地址,如下图)
clickhouse-client:
- 找到名为 clickhouse-client 的 Target
- Executor 选择
clickhouse
执行文件 - 设置执行参数:client
- 默认用户为default,密码为空。设置用户
-u username
,设置密码--password 123
- 默认用户为default,密码为空。设置用户
用户信息由server的config.xml文件指定。用户的users.xml模板在ClickHouse/programs/server/users.xml
以上,已设置好server和client,可直接在Clion进行运行/断点调试。
5 调试 ClickHouse(服务器直接调试)
在服务器上调试ClickHouse,第一次时需要通过
ninja
命令编译项目。
ClickHouse的可执行文件在:/mnt/ClickHouse/cmake-build-debug/programs 目录下:
(/mnt/ClickHouse/cmake-build-debug为编译目录)
执行文件clickhouse
,运行后有很多供参数选择,输入不同的参数会去执行对应的可执行文件:
运行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