为什么 CLion 集成的 CMake 找不到已安装的包?

Why does CLion's integrated CMake fail to find installed packages?

我有一个由 CMakeLists.txt 文件描述的 C++ 项目,如果我从终端调用 CMake,CMake 会从该文件成功生成 MAKE 文件。 (这是在 Ubuntu。)

该项目依赖于我的系统上安装的 Boost 和 Eigen。我可以在 /usr/include/boost 中看到 Boost 包含,在 /usr/lib/x86_64-linux-gnu 中看到 Boost 二进制文件,在 /usr/lib/x86_64-linux-gnu/cmake/ 中看到 Boost .cmake 文件。我在 /usr/include/eigen3 中看到 Eigen headers,在 /usr/lib/cmake/eigen3 中看到 Eigen3Config.cmake

我的 CMakeLists.txt 文件在配置模式下调用 find_package,如下所示:

find_package(Eigen3 CONFIG REQUIRED)
if (${Eigen3_FOUND})
   Message(STATUS "eigen found...")
endif (${Eigen3_FOUND})

find_package(Boost 1.7 CONFIG REQUIRED QUIET)
if (${Boost_FOUND})
    Message(STATUS "boost found...")
endif (${Boost_FOUND})

以上在命令行中按预期工作,但是当我尝试从 CLion 2020.2.3 打开项目时出现以下错误

CMake Error at CMakeLists.txt:4 (find_package): Could not find a package configuration file provided by "Eigen3" with any of the following names:

Eigen3Config.cmake
eigen3-config.cmake

Add the installation prefix of "Eigen3" to CMAKE_PREFIX_PATH or set "Eigen3_DIR" to a directory containing one of the above files. If "Eigen3" provides a separate development package or SDK, be sure it has been installed.

如果我更改 find_package 调用的顺序,CMake 将无法类似地找到提升。

实际上,这种行为似乎是将 CLion 安装为 flatpak 包的结果。我卸载并重新安装为正常的二进制文件,问题就消失了。 (这里 Linux 的新手...)

这与此处描述的问题相同:Jetbrains YouTrack。带走的似乎是不要通过 Flatpak 安装 JetBrains 产品。