ubuntu下cmake 使用clang

本文介绍如何安装 LLVM 和 Clang,并通过 CMake 配置使用 Clang 进行 Linux 平台上的 C/C++ 项目的跨平台编译。包括设置编译器、链接器等工具路径及不同编译模式下的编译选项。

安装llvm、clang

sudo apt-get install llvm clang

clang命令会在/usr/bin/clang

cmake配置交叉编译链

建立linux.toolchain.cmake文件

cmake_minimum_required( VERSION 2.6.3 )
set(CMAKE_SYSTEM_NAME Linux )

SET (CMAKE_C_COMPILER             "/usr/bin/clang")
SET (CMAKE_C_FLAGS                "-Wall -std=c99")
SET (CMAKE_C_FLAGS_DEBUG          "-g")
SET (CMAKE_C_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
SET (CMAKE_C_FLAGS_RELEASE        "-O4 -DNDEBUG")
SET (CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")

SET (CMAKE_CXX_COMPILER             "/usr/bin/clang++")
SET (CMAKE_CXX_FLAGS                "-Wall")
SET (CMAKE_CXX_FLAGS_DEBUG          "-g")
SET (CMAKE_CXX_FLAGS_MINSIZEREL     "-Os -DNDEBUG")
SET (CMAKE_CXX_FLAGS_RELEASE        "-O4 -DNDEBUG")
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")

SET (CMAKE_AR      "/usr/bin/llvm-ar")
SET (CMAKE_LINKER  "/usr/bin/llvm-ld")
SET (CMAKE_NM      "/usr/bin/llvm-nm")
SET (CMAKE_OBJDUMP "/usr/bin/llvm-objdump")
SET (CMAKE_RANLIB  "/usr/bin/llvm-ranlib")

cmake命令引入交叉编译配置即可

cmake  -DCMAKE_TOOLCHAIN_FILE=${CURRENT_SCRIPT_DIR}/linux.toolchain.cmake  .

此时会显示下面一些东西,表示编译器已经换成了clang

-- The C compiler identification is Clang 3.8.0
-- The CXX compiler identification is Clang 3.8.0
-- Check for working C compiler: /usr/bin/clang
-- Check for working C compiler: /usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done

注意: 如果已经运行过cmake,要先将cmake生成的文件删掉。

转载请注明http://www.cnblogs.com/stonehat/

转载于:https://www.cnblogs.com/stonehat/p/7000637.html

<think>嗯,用户想知道如何在Ubuntu使用Clang编译器。首先,我需要回忆一下ClangUbuntu中的安装和基本用法。根据之前用户提供的引用,比如引用[3]里提到了安装build-essential和cmake,可能这些是必要的依赖。不过Clang本身可能需要单独安装。 首先,安装ClangUbuntu的仓库里通常有Clang的包,可以通过apt来安装。记得不同版本可能对应不同的Clang版本,比如Ubuntu 20.04默认可能是Clang 10,而更新的版本可能需要添加源。用户可能需要先更新软件包列表,然后安装clang。例如,sudo apt install clang。另外,用户可能还需要安装LLVM,因为Clang是LLVM的一部分,但有时候clang包会作为依赖自动安装。 安装完成后,检查版本可以用clang --version。然后,编译代码的话,比如有一个test.c文件,可以用clang test.c -o test,然后运行./test。这应该是基本步骤。不过用户可能需要了解如何切换默认编译器,比如系统里同时有GCC和Clang的话,如何选择Clang作为默认。这时候可能需要使用update-alternatives命令来配置。 另外,用户可能想知道如何指定C++标准,比如使用C++17,这时候编译命令需要加上-std=c++17。还有调试信息的话,加上-g选项。或者优化选项-O2之类的。这些是常见的编译选项。 还有,用户可能想用Clang结合CMake来构建项目。在CMakeLists.txt里设置CMAKE_C_COMPILER和CMAKE_CXX_COMPILER为clangclang++。或者在命令行中传递参数,比如cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..。这样CMake就会使用Clang编译。 另外,Clang的一些工具,比如clang-format代码格式化,clang-tidy静态分析,用户可能对这些也感兴趣。安装clang-format和clang-tidy可能需要额外的包,比如sudo apt install clang-format clang-tidy。 需要确保步骤正确,比如安装命令是否准确,是否需要sudo权限。还有可能遇到的问题,比如依赖项缺失,这时候可能需要安装libstdc++等库。或者路径问题,确保安装后Clang在PATH环境变量中。 根据用户提供的引用,引用[3]提到了安装build-essential和cmake,这些在编译时可能是必要的,所以可能需要在步骤中提及安装这些依赖。比如步骤里先更新系统,安装build-essential、cmake、git等,然后再安装Clang。 用户的问题可能涉及基本使用,所以需要分步骤,安装、验证、编译示例,以及可能的配置和工具使用。可能还需要提醒用户如果遇到问题,如何检查Clang是否正确安装,比如查看版本,或者尝试编译简单的程序。 总结步骤应该是:1. 安装Clang和LLVM;2. 验证安装;3. 编译示例程序;4. 配置CMake使用Clang;5. 其他工具如clang-format的安装和使用。同时,可能需要注意事项,比如多版本共存时的配置,或者如何选择C++标准库等。</think>### 如何在Ubuntu使用Clang编译器 #### 1. 安装Clang Clang编译器可通过APT包管理器直接安装。根据Ubuntu版本不同,默认提供的Clang版本可能有所差异。以下是通用安装步骤: ```bash sudo apt update sudo apt install clang llvm # 安装Clang和LLVM工具链 ``` 验证安装: ```bash clang --version # 输出示例:Ubuntu 20.04默认安装Clang 10 ``` #### 2. 基础编译示例 创建C程序文件`hello.c`: ```c #include <stdio.h> int main() { printf("Hello Clang!\n"); return 0; } ``` 使用Clang编译: ```bash clang hello.c -o hello # 生成可执行文件 ./hello # 运行输出结果 ``` #### 3. 指定C++标准与优化选项 对于C++程序,需安装`libstdc++`并指定标准: ```bash sudo apt install g++ # 安装C++标准库支持 clang++ -std=c++17 -O2 main.cpp -o main # 使用C++17标准和优化级别O2 ``` #### 4. 与CMake集成 在CMake项目中指定Clang编译器: ```bash mkdir build && cd build cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. make ``` #### 5. 辅助工具安装 ```bash sudo apt install clang-format clang-tidy # 代码格式化和静态分析工具 clang-format -i *.cpp # 格式化代码文件 ``` #### 注意事项 - 多版本管理:使用`update-alternatives`配置默认编译器[^3] - 依赖问题:缺少头文件时安装`libc6-dev`:`sudo apt install libc6-dev` - 交叉编译:需额外配置目标平台工具链
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值