我正在为 LLVM/Clang 编写自定义通道,重新编译往往需要一段时间并使用大量内存。我听说 gold 链接器 (1) 比标准 ld 链接器花费更少的时间并且 (2) 使用更少的内存。
有没有办法将标志传递到 LLVM/Clang 构建过程并更改为黄金链接器?按照这个答案 https://stackoverflow.com/questions/7031126/switching-between-gcc-and-clang-llvm-using-cmake/7032021#7032021,我一直在尝试使用覆盖文件,但似乎没有取得很大成功。
我还要指出,我正在使用 Clang 3.9 编译最新的 Clang/LLVM 版本 (4.0);如果有必要,我不介意切换回 GCC,但宁愿避免它。
4.0 后(提交后rL292047 https://github.com/llvm-mirror/llvm/commit/a9134d2526fa011a40656c2b5f8b5124fa38496d),你应该设置LLVM_USE_LINKER
to gold
像这样:
cmake ... -DLLVM_USE_LINKER=gold ...
参考http://llvm.org/docs/CMake.html#llvm-specific-variables http://llvm.org/docs/CMake.html#llvm-specific-variables
虽然您仍然可以使用gold
,这些天(2021 年 10 月)您可能应该使用lld
如果它存在于您的主机工具链中。如果您的主机工具链是来自 llvm.org 的 clang+llvm 发行版,那么它可能会。如果您的主机工具链来自 Linux 发行版的包管理器,则它可能可用,但作为单独的独立包安装。
cmake ... -DLLVM_ENABLE_LLD=ON ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)