我在Unix计算机上安装了多个版本的llvm,我正在构建一个CMake项目,该项目要求LLVM50及更低版本,但设置可找到LLVM60的CMake LLVM_CONFIG路径。
是否有一种方法可以促使CMake找到正确的LLVM版本。
答案 0 :(得分:1)
您没有写过如何通过命令行访问这些版本的信息(例如,Clang 3.9是否以clang-3.9
执行,还是必须将其bin
目录导出到$PATH
环境变量中? ?)
一旦所需的LLVM / Clang版本位于我的$PATH
中,我通常要做的就是将llvm-config
用于我感兴趣的特定版本,以传递cmake
变量值(尤其是LLVM_DIR
),例如
cmake \
-GNinja \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DLLVM_DIR="$(llvm-config --cmakedir)" \
-DCMAKE_BUILD_TYPE=Debug \
[...]
如果您想要的LLVM版本中没有--cmakedir
选项,请改用$(llvm-config --prefix)/share/llvm/cmake/)
之类的东西(或带有定义的cmake目录所在的地方)。
此外,如前所述,将CMAKE_C_COMPILER
和CMAKE_CXX_COMPILER
调整为正确的可执行文件名称。
答案 1 :(得分:1)
您可以在Linux中更新$PATH
变量,例如:
export $PATH=<path_to_llvm_bin_folder>:$PATH
如果您始终使用特定版本的llvm,也可以将其放置在.bashrc文件中。