Ubuntu下安装clang和libc++

2024-03-17 11:58
文章标签 lib c++ ubuntu 安装 clang

本文主要是介绍Ubuntu下安装clang和libc++,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在跑别人代码(Makoto Miwa - Relation Extraction)的时候需要用到clang++,所以需要在Ubuntu上安装一下clang++。转载自:算法时空

 

选择版本

之前推荐的是当前版本trunk,但是有时它在不断更新,所以最好还是选择特定版本,这里我们选择clang 5.0最终版,那么官网指南中可将trunk改成tags/RELEASE_500/final
例如:
http://llvm.org/svn/llvm-project/llvm/trunk
可以改成:
http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final

步骤

  • 安装必要的包:
1 sudo apt install subversion
2 sudo apt install cmake
  • 建立目录(这里取名为CL):
1 cd ~
2 sudo mkdir CL
3 cd CL
  • 下载llvm:
1 svn co http://llvm.org/svn/llvm-project/llvm/tags/RELEASE_500/final llvm
  • 下载clang:
1 cd llvm/tools
2 svn co http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_500/final clang
3 cd ../..
  • 下载clang工具(可选)
1 cd llvm/tools/clang/tools
2 svn co http://llvm.org/svn/llvm-project/clang-tools-extra/tags/RELEASE_500/final extra
3 cd ../../../..
  • 下载Compiler-RT(可选)
1 cd llvm/projects
2 svn co http://llvm.org/svn/llvm-project/compiler-rt/tags/RELEASE_500/final compiler-rt
3 cd ../..
  • 下载标准库libcxx(绝对要下载)还有libcxxabi(千万不要遗漏):
1 cd llvm/projects
2 svn co http://llvm.org/svn/llvm-project/libcxx/tags/RELEASE_500/final libcxx
3 svn co http://llvm.org/svn/llvm-project/libcxxabi/tags/RELEASE_500/final libcxxabi
4 cd ../..
  • 编译安装
1 mkdir build
2 cd build

注意将默认的Debug模式换成Release模式.

1 cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm
2 make
3 sudo make install
  • 可以用了!
    • 测试一下
1 clang++ --help
  • 基于c++11使用libc++编译x.cpp并执行a.out
1 clang++ -std=c++11 -stdlib=libc++ x.cpp
2 .\a.out
  • 验证x.cpp的正确性
1 clang x.cpp -fsyntax-only
  • 输出x.cpp未优化的LLVM代码
1 clang x.cpp -S -emit-llvm -o -
  • 输出x.cpp经过O3优化的LLVM代码
1 clang x.cpp -S -emit-llvm -o - -O3
  • 输出x.cpp的原生机器码
1 clang x.cpp -S -O3 -o -

折腾

安装完毕之后, 如果不嫌麻烦的话, 可以用clang再编译安装一次:

1 CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm

 

这篇关于Ubuntu下安装clang和libc++的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/818884

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

C++中detach的作用、使用场景及注意事项

《C++中detach的作用、使用场景及注意事项》关于C++中的detach,它主要涉及多线程编程中的线程管理,理解detach的作用、使用场景以及注意事项,对于写出高效、安全的多线程程序至关重要,下... 目录一、什么是join()?它的作用是什么?类比一下:二、join()的作用总结三、join()怎么

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

C++中全局变量和局部变量的区别

《C++中全局变量和局部变量的区别》本文主要介绍了C++中全局变量和局部变量的区别,全局变量和局部变量在作用域和生命周期上有显著的区别,下面就来介绍一下,感兴趣的可以了解一下... 目录一、全局变量定义生命周期存储位置代码示例输出二、局部变量定义生命周期存储位置代码示例输出三、全局变量和局部变量的区别作用域