在我的 CMake 中,我有:
find_package(PythonInterp 3.6 REQUIRED)
当我执行 cmake 时,这很好用,因为我在 /opt/local/bin 中有 python3.6。但是,当 CLion 执行相同的 cmake 时,却找不到它。我怎样才能让它知道?
我尝试将 /opt/local/bin 添加到 PATH 并添加一个 python 解释器设置,但是下一个工作。
在我的 CMake 中,我有:
find_package(PythonInterp 3.6 REQUIRED)
当我执行 cmake 时,这很好用,因为我在 /opt/local/bin 中有 python3.6。但是,当 CLion 执行相同的 cmake 时,却找不到它。我怎样才能让它知道?
我尝试将 /opt/local/bin 添加到 PATH 并添加一个 python 解释器设置,但是下一个工作。
我通过向 cmake 添加一个额外的参数解决了这个问题,即:Python3_EXECUTABLE
cmake -DPython3_EXECUTABLE=/path/to/bin/python3 ..
要尝试的一件事是临时设置CMAKE_PREFIX_PATH
python/usr/local
在某些平台中的安装位置(发生在 macOS 中)。
+ set(CMAKE_PREFIX_PATH_bak ${CMAKE_PREFIX_PATH})
+ set(CMAKE_PREFIX_PATH "/usr/local")
find_package(PythonInterp)
+ set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH_bak})
我能够弄清楚。可以将 env 变量添加到 cmake 执行中:env
在此处查找https://cmake.org/cmake/help/latest/manual/cmake.1.html
知道这一点很容易将其添加到 clion 中:设置/首选项 -> 构建、执行、部署 -> CMake -> CMake 选项
并添加到该字段中env PATH=${PATH}:/opt/local/bin
。