cmake 和 llvm-config 配置
cmake and llvm-config config
我在我的 Unix 机器上安装了多个版本的 llvm,我正在构建一个需要 LLVM50 和更低版本的 CMake 项目,但是设置 CMake LLVM_CONFIG 路径它会找到 LLVM60。
有没有办法推动 CMake 找到正确的 LLVM 版本。
您没有写下您的命令行如何访问这些版本(例如,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 \
[...]
如果 --cmakedir
选项在您想要的 LLVM 版本中不可用,请改用 $(llvm-config --prefix)/share/llvm/cmake/)
之类的东西(或带有定义的 cmake 目录所在的任何地方)。
此外,如前所述,将 CMAKE_C_COMPILER
和 CMAKE_CXX_COMPILER
调整为正确的可执行文件名称。
您可以在 Linux 中更新 $PATH
变量,例如:
export $PATH=<path_to_llvm_bin_folder>:$PATH
如果你总是使用特定版本的 llvm,你也可以将它放在你的 .bashrc 文件中。
我在我的 Unix 机器上安装了多个版本的 llvm,我正在构建一个需要 LLVM50 和更低版本的 CMake 项目,但是设置 CMake LLVM_CONFIG 路径它会找到 LLVM60。
有没有办法推动 CMake 找到正确的 LLVM 版本。
您没有写下您的命令行如何访问这些版本(例如,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 \
[...]
如果 --cmakedir
选项在您想要的 LLVM 版本中不可用,请改用 $(llvm-config --prefix)/share/llvm/cmake/)
之类的东西(或带有定义的 cmake 目录所在的任何地方)。
此外,如前所述,将 CMAKE_C_COMPILER
和 CMAKE_CXX_COMPILER
调整为正确的可执行文件名称。
您可以在 Linux 中更新 $PATH
变量,例如:
export $PATH=<path_to_llvm_bin_folder>:$PATH
如果你总是使用特定版本的 llvm,你也可以将它放在你的 .bashrc 文件中。