【发布时间】:2015-12-15 07:52:34
【问题描述】:
我最近想构建一个clang + llvm + libc++。我目前在一个系统(基于 CentOS 6.6)上,我无法轻松获得 clang 的二进制包,但我可以通过设置一些环境变量来设置一个足够新的 GCC 来构建 clang(例如 4.9)。
我希望我的 clang 版本是
- 便携,即没有硬编码路径(例如使用
-rpath $ORIGIN) - 既不依赖于系统 gcc 也不依赖于导入的 gcc 4.9(即它们的 C/C++ 运行时)
- 特别是,编译器、编译器即库 libclang.so 以及使用新编译器构建的程序都不应依赖 libstdc++,而应使用新构建的 libc++。
我可以这样做,但它涉及将 clang、llvm、libc++、libc++abi(以及我可能忘记的东西)放在一棵树中,从一个构建目录构建 clang,然后盲目设置很多标志并构建再次从第二个构建目录。
还有另一种使用 libc++ 引导 clang 的正确方法吗?我相信肯定有,因为 llvm 和 clang 的官方二进制文件如上所述是自给自足的。
【问题讨论】:
-
“官方”软件包可能会使用您的方法(将所有内容放在单个源代码树中)或交错构建(构建没有 libc++ 的 Clang,使用新的 clang 构建 libc++,构建新的 clang libc++).
-
顺便说一句,你为什么不下载一个更大的发行版的源包,看看他们是怎么做的?
标签: cmake clang clang++ libc++