ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

对大型CMake工程采用Clang构建(编译)

2022-08-13 16:02:56  阅读:279  来源: 互联网

标签:llvm CMake lib Clang 编译 FLAGS usr openmp


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有