clang10在ubuntu18.04下编译ZeroTier,故障解决

进入官网,没找到已经编译好的deb包或者是rpm包,于是下载源码:https://github.com/zerotier/ZeroTierOne/archive/master.zip

系统之前已经安装了clang 版本10。解压缩后,发现有个CMakeLists.txt,于是 mkdir build; cd build; cmake ..; make -j8

但是发现没有编译出可执行文件,仅仅编译出来了.a文件。仔细看网站上的说明,要make,目录下还有一个Makefile文件。

但编译的时候,分别显示无法找到<string>这个文件,另外提示“找不到 -lstdc++”。

export CPLUS_INCLUDE_PATH=/usr/include/c++/7:/usr/include/c++/7/backward:/usr/include/x86_64-linux-gnu/c++/7
apt install libstdc++-10-dev -y

这样就解决问题了。

仔细check了下,clang10使用/usr/include/c++/7下的头文件,还是有点不论不类。

运行apt-cache search clang|grep 10|grep dev,结果是

clang-tools-10 - clang-based tools for C/C++ developments
libclang-10-dev - Clang library - Development package
libclang-common-10-dev - Clang library - Common development package
libclang-cpp10-dev - C++ interface to the Clang library
liblldb-10-dev - Next generation, high-performance debugger, header files

  

安装 libclang-cpp10-dev 没有作用,安装 libclang-cpp10-dev 有效果,/usr/include/c++/目录下增加了“10”这个目录。

所以最好的方案是:

apt -y install libstdc++-10-dev libclang-cpp10-dev
原文地址:https://www.cnblogs.com/tangxiaosheng/p/14280882.html