linux下编译clang, libc++, libc++abi,以及第二遍自举编译

2023-05-16

最新的mint16,附带gcc4.8.1



第一步:用gcc编译clang


1.

下载llvm+clang最新版本。具体见http://clang.llvm.org/get_started.html


2.

mkdir build_with_gcc

cd build_with_gcc

../llvm/configure --disable-assertions --enable-optimized

make


3.

vi .bashrc

写入

export PATH=$PATH:/home/username/clang/build_with_gcc/Release/bin


第二步,用刚编译好clang++以及libsupc++编译libc++


1.

下载libc++,见http://libcxx.llvm.org/


2.

mkdir libcxxbuild_with_libsupc

cd libcxxbuild_with_libsupc

CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libsupc++ -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="/usr/include/c++/4.8/;/usr/include/x86_64-linux-gnu/c++/4.8/" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../libcxx


上面一步必须libsupc++,libstdc++有问题。


3.

make

sudo make install


第三步,用编译好的clang++及libc++编译libc++abi


1. 下载,见http://libcxxabi.llvm.org/


2.

cd libcxxabi/lib

./buildit


3.

sudo cp libc++abi.so.1.0 /usr/lib/libc++abi.so.1.0

cd /usr/lib

sudo ln -s libc++abi.so.1.0 libc++abi.so.1

sudo ln -s libc++abi.so.1 libc++abi.so


第四步,用clang 以及新编译的libc++abi,第二次编译libc++


1.

mkdir libcxxbuild_with_libcxxabi

cd libcxxbuild_with_libcxxabi

CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_LIBCXXABI_INCLUDE_PATHS="../libcxxabi/include" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../libcxx


2.

make

sudo make install


第5步,用clang,libc++,libc++abi,重新编译clang


1.

mkdir build_with_clang

LDFLAGS=-lc++abi ../llvm/configure --disable-assertions --enable-optimized --enable-libcpp


2.

make


3.

vi .bashrc

删掉之前的,写入下面

export PATH=$PATH:/home/username/clang/build_with_clang/Release/bin



第6步,测试

clang++ a.cc

clang++ a.cc -stdlib=libc++ -lc++abi


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux下编译clang, libc++, libc++abi,以及第二遍自举编译 的相关文章

随机推荐

  • manjaro 使用yay命令

    使用yay命令 安装yay span class hljs built in sudo span pacman S yay yay安装软件 xff0c 安装时不使用sudo 安装网易云音乐 yay span class hljs attri
  • linux下编译安装phalcon

    官网 安装文档 开发文档中文Phalcon 3 1 1 git clone depth 61 1 34 git github com phalcon cphalcon git 34 cd cphalcon build 如需指定php文件如下
  • 安装pecl来管理安装php扩展

    安装pecl来管理安装php扩展 推荐阅读sublime使用 sublime phpcs 插件 前提已经安装php 下载 wget http pear php net go pear phar 初始化 使用自己的php路径 php go p
  • 反转义var_dump

    适用于 array 相关讨论 span class token variable str span span class token operator 61 span span class token heredoc string stri
  • forward() missing 1 required positional argument:‘input_ids‘

    解决 transformers的版本不对 xff0c 将transformers版本从3 4 0改为4 4 1版
  • 2020-02-23

    常用命令 xff1a cd xff1a 切换目录 xff1b ls xff1a 用于显示指定工作目录下之内容 xff1b pwd xff1b 显示工作目录所在位置 xff1b mkdir xff1a 创建目录 xff1b cp xff1a
  • iOS选择图片

    iOS选择图片的类是UIImagePickerController xff0c 使用该类时 xff0c 必须遵循两个协议 xff1a UIImagePickerControllerDelegate xff0c UINavigationCon
  • C - 平衡字符串(前缀+尺取法)

    C 平衡字符串 题意 xff1a 一个长度为 n 的字符串 s xff0c 其中仅包含 Q W E R 四种字符 如果四种字符在字符串中出现次数均为 n 4 xff0c 则其为一个平衡字符串 现可以将 s 中连续的一段子串替换成相同长度的只
  • A - 氪金带东(链式前向星+DFS)

    A 氪金带东 题意 xff1a 实验室里原先有一台电脑 编号为1 xff0c 最近氪金带师咕咕东又为实验室购置了N 1台电脑 xff0c 编号为2到N 每台电脑都用网线连接到一台先前安装的电脑上 但是咕咕东担心网速太慢 xff0c 他希望知
  • A - 掌握魔法の东东 II(暴力求解,害!)

    A 掌握魔法 东东 II 题意 xff1a 从瑞神家打牌回来后 xff0c 东东痛定思痛 xff0c 决定苦练牌技 xff0c 终成赌神 xff01 东东有 A B 张扑克牌 每张扑克牌有一个大小 整数 xff0c 记为a xff0c 范围
  • WEEK_9 复杂模拟题的普适性方法

    A 咕咕东的目录管理器 题意 xff1a 咕咕东的雪梨电脑的操作系统在上个月受到宇宙射线的影响 xff0c 时不时发生故障 xff0c 他受不了了 xff0c 想要写一个高效易用零bug的操作系统 这工程量太大了 xff0c 所以他定了一个
  • python中的细节—左闭右开原则

    import numpy as np print 34 list 34 a 61 i for i in range 10 print len a print a print 34 list分割 34 print a 0 3 print a
  • python字符串怎么排序

    以实例形式简述了Python实现字符串排序的方法 xff0c 是Python程序设计中一个非常实用的技巧 分享给大家供大家参考之用 具体方法如下 xff1a 一般情况下 xff0c python中对一个字符串排序相当麻烦 xff1a 一 p
  • jupyter notebook中添加虚拟环境

    打开Anaconda Prompt输入activate name xff08 name是你想使用的虚拟环境 xff0c 即想要配置到jupyter notebook中的环境 xff09 pip3 install ipykernel xff0
  • centos8安装mysql8(带有解决远程访问mysql问题)

    1 在安装MySql之前 xff0c 要先卸载掉CentOS自带的MariaDB xff0c 输入 xff1a rpm qa grep i mariadb 结果 xff1a 再次输入查出的文件 xff08 删除文件 xff09 xff1a
  • 3.24遇到恶心bug*1

    remain span class token operator 61 span np span class token punctuation span zeros span class token punctuation span sp
  • 电脑连WIFI网速慢,手机却很快

    问题 xff1a 在同一个位置 xff0c 电脑连上wifi速度特别慢 xff0c 手机连wifi速度却很快 把电脑搬到路由器附近发现电脑的速度也很快了 xff0c 说明之前是因为电脑接收信号有问题 怎么解决呢 xff1f 我的一种解决方法
  • mac日历显示国家节假日及补班日期

    mac日历显示国家节假日及补班日期 先上效果图订阅链接订阅方法 先上效果图 系统日历页面简洁 而且目前支持节假日 农历显示 只是少了放假与补班的标识 为了区分节假日与补班的颜色 整了两个ics文件 所以得订阅两个链接 如果你不想区分颜色就把
  • 【QT】error: LNK1104: 无法打开文件“release\xxxxx.exe”报错解决方案

    一 问题重述 出现这种报错一般是程序运行之后存在空指针问题 xff0c 然后直接崩溃掉 xff0c 下一次调试的时候就出现这种报错 如下图所示 xff1a 二 原因分析 出现这种情况是因为上次运行之后 xff0c 程序的exe文件异常退出了
  • linux下编译clang, libc++, libc++abi,以及第二遍自举编译

    最新的mint16 xff0c 附带gcc4 8 1 第一步 xff1a 用gcc编译clang 1 下载llvm 43 clang最新版本 具体见http clang llvm org get started html 2 mkdir b