对大型CMake工程采用Clang构建(编译)
作者:互联网
gcc vs Clang
An interesting blog
https://www.incredibuild.com/blog/gcc-vs-clang-battle-of-the-behemoths
Ubuntu安装Clang
Official website
https://apt.llvm.org
#For convenience there is an automatic installation script available that installs LLVM for you.
#To install the latest stable version:
bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
Cmake工程采用Clang构建需要的修改
在当前bash环境下,根据你所安装的Clang版本和路径
export CC=/usr/bin/clang-15
export CXX=/usr/bin/clang++-15
#export CPP=/usr/bin/clang-cpp-15
#export LD=/usr/bin/ld64.lld-15
后面CPP和LD的两行非必须。
如果编译选项中含有-fopenmp但报错提示找不到omp相关的库或头文件,可以确保在系统安装了openmp的前提下,自己搜索llvm安装路径下openmp的include和lib路径,找到之后手动添加到CMAKE_CXX_FLAGS。比如
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/lib/llvm-10/include/openmp -L/usr/lib/llvm-10/lib/")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/usr/lib/llvm-10/include/openmp -L/usr/lib/llvm-10/lib/")
也有人说链接到gcc目录下的openmp的include和lib路径也可以,但我没有试过。
gcc vs Clang首次构建时间对比
在我实际工作的一个项目中,多次统计的耗时对比是
Clang 4:06s
gcc 12:34s
多次统计时间浮动在几秒钟之内,提速还是比较明显的。
标签:llvm,CMake,lib,Clang,编译,FLAGS,usr,openmp 来源: https://www.cnblogs.com/ZhaoqunZhong/p/16583210.html