如何强制 llvm cmake 仅使用给定的库路径?

How to force llvm cmake to use only given path to libs?

我尝试在我没有 root 权限 的系统上构建 llvm。所以,我遇到了一些问题:我不得不在我的 $HOME 路径中安装 gcccmake,因为系统的 gcccmake 非常旧我无法用 sudo.

更新它们

我很好地安装了 gcccmake 并提到了 PATH env 变量的新路径。我 运行 cmake 对于 llvm 是这样的:

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

生成生成文件成功。当我 运行 时,它抛出:

../../../../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 但我不明白如何强制 cmakemake 只考虑这些路径而不是 /lib64。 我应该传递什么选项给 cmake 或者我是否需要添加一些环境变量来解决问题?

我找到了适合我的解决方案。 找出包含所需库的路径(在我的例子中是 /home/my_user/local/lib64,然后是 运行 LD_LIBRARY_PATH=/home/my_user/local/lib64 make!