【发布时间】:2023-02-10 15:34:42
【问题描述】:
我正在尝试在 CLion 中构建 ClickHouse。
我关注official documentation。我能够从命令行构建 ClickHouse,但是,我也希望能够在 CLion 中构建它。
该文档没有给出太多关于如何做到这一点的信息,只是暗示这是可能的。 ClickHouse 的GitHub Issues search by 'CLion' 也没有提供太多建议。
ClickHouse 使用 CMake 和 Ninja。该文档提到可以使用 Ninja 或 make 而不是 Ninja 在 CLion 中进行编译。
我都试过了,但有很多错误。例如,在将 CMake 设置设置为 -G Ninja 的情况下运行时,我能够构建目标 common,但在构建目标 clickhouse-client 时出现以下错误:
====================[ Build | clickhouse-client | Debug ]=======================
/usr/bin/cmake --build /tmp/tmp.CAA3nJhi8z/cmake-build-debug --target clickhouse-client
[1/7338] Generating lber-version.c
FAILED: contrib/openldap-cmake/lber-version.c
cd /tmp/tmp.CAA3nJhi8z/contrib/openldap && /usr/bin/cmake -E env bash -c "/tmp/tmp.CAA3nJhi8z/contrib/openldap/build/mkversion -v '2.5.X' liblber.la > \"/tmp/tmp.CAA3nJhi8z/cmake-build-debug/contrib/openldap-cmake/lber-version.c\""
bash: /tmp/tmp.CAA3nJhi8z/contrib/openldap/build/mkversion: Permission denied
[18/7338] Building CXX object contrib/..._/icu/icu4c/source/i18n/calendar.cpp.o
ninja: build stopped: subcommand failed.
我还在 CLion 中使用远程工具链在服务器上构建,而不是我的笔记本电脑。由于这是一个权限问题,我假设我必须从 sudo 运行构建,但我不确定该怎么做,并且搜索只提供了关于 How to debug as root in CLion 的指南。
问题2。在 CLion 中加载 CMake 后,我在 ClickHouse 项目的根目录中的 CMakeLists.txt 中没有看到任何绿色箭头是否可以?我只能在右上角的下拉列表中看到目标 (screenshot)。
问题#3。我也不确定如何在 CLion 中构建所有二进制文件。例如。在命令行中,我只会运行ninja,但在 CLion 中有很多目标,而且没有一个像build all 那样命名。
非常感谢任何指向解决方案的指针。
【问题讨论】:
标签: cmake compilation clion clickhouse ninja