【发布时间】:2021-12-05 01:26:35
【问题描述】:
我尝试在我没有 root 访问权限的系统上构建 llvm。所以,我遇到了一些问题:我不得不在我的$HOME 路径中安装gcc、cmake,因为系统的gcc 和cmake 非常旧,我无法用sudo 更新它们。
我很好地安装了gcc 和cmake,并提到了PATH 环境变量的新路径。我用这个为llvm 运行cmake:
cmake -S llvm -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DLLVM_TARGETS_TO_BUILD=all -DLLVM_ENABLE_PROJECTS="clang;lld" -DCMAKE_INSTALL_PREFIX=/home/my_user/local -DCMAKE_C_COMPILER=/home/my_user/local/bin/gcc -DCMAKE_LIBRARY_PATH=/home/my_user/local/lib ../llvm
它成功生成了make-file。当我运行时,它会抛出:
../../../../bin/clang-tblgen: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ../../../../bin/clang-tblgen)
../../../../bin/clang-tblgen: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ../../../../bin/clang-tblgen)
...
但是当我安装新的gcc 时,我已经在我的/home/my_user/local/lib64 和/home/my_user/local/lib 中有方便的libstdc++.so.6,但我不明白如何强制cmake 或make 只考虑这些路径而是/lib64。
我应该将什么选项传递给cmake 还是需要添加一些环境变量来解决问题?
【问题讨论】: