如何强制 llvm cmake 仅使用给定的库路径?
How to force llvm cmake to use only given path to libs?
我尝试在我没有 root 权限 的系统上构建 llvm。所以,我遇到了一些问题:我不得不在我的 $HOME
路径中安装 gcc
、cmake
,因为系统的 gcc
和 cmake
非常旧我无法用 sudo
.
更新它们
我很好地安装了 gcc
和 cmake
并提到了 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
但我不明白如何强制 cmake
或 make
只考虑这些路径而不是 /lib64
。
我应该传递什么选项给 cmake
或者我是否需要添加一些环境变量来解决问题?
我找到了适合我的解决方案。
找出包含所需库的路径(在我的例子中是 /home/my_user/local/lib64
,然后是 运行
LD_LIBRARY_PATH=/home/my_user/local/lib64 make
!
我尝试在我没有 root 权限 的系统上构建 llvm。所以,我遇到了一些问题:我不得不在我的 $HOME
路径中安装 gcc
、cmake
,因为系统的 gcc
和 cmake
非常旧我无法用 sudo
.
我很好地安装了 gcc
和 cmake
并提到了 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
但我不明白如何强制 cmake
或 make
只考虑这些路径而不是 /lib64
。
我应该传递什么选项给 cmake
或者我是否需要添加一些环境变量来解决问题?
我找到了适合我的解决方案。
找出包含所需库的路径(在我的例子中是 /home/my_user/local/lib64
,然后是 运行
LD_LIBRARY_PATH=/home/my_user/local/lib64 make
!