Cmake 找不到 OpenMP(Centos + homebrew)

Cmake 找不到 OpenMP(Centos + homebrew)

我正在尝试从源代码安装 mxnet 和 xgboost。安装这两个软件时,cmake 都提示找不到 OpemMP,这两个库的错误都一样,所以我猜是我的设置出了问题。

CMake Error at /home/mguzman/.linuxbrew/Cellar/cmake/3.19.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:218 (message):
  Could NOT find OpenMP_C (missing: OpenMP_pthread_LIBRARY) (found version
  "4.0")
Call Stack (most recent call first):
  /home/mguzman/.linuxbrew/Cellar/cmake/3.19.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:582 (_FPHSA_FAILURE_MESSAGE)
  /home/mguzman/.linuxbrew/Cellar/cmake/3.19.4/share/cmake/Modules/FindOpenMP.cmake:529 (find_package_handle_standard_args)
  CMakeLists.txt:148 (find_package)

我已经完成了brew install libomp。我尝试使用不同版本的 gcc,但没有成功。我尝试重建 gcc,但没有成功。我试过了,pip3 install cmake但也没有用。

我尝试过export OPENMP_HOME="~/.linuxbrew/opt/libomp"export OPENMP_DIR="~/.linuxbrew/opt/libomp"但是没有效果。

我试过

export LDFLAGS="-L/home/mguzman/.linuxbrew/opt/libomp/lib"
export CPPFLAGS="-I/home/mguzman/.linuxbrew/opt/libomp/include"

按照 brew 的建议,但它也没有用。我没有主意了。

答案1

我遇到了同样的问题,但使用的是我自己的 cmake 文件。我通过将 cmake 提示到正确的目录来修复它

find_library(LIBOMP OpenMP omp omp5 HINTS "~/.linuxbrew/opt/libomp/lib")

然后稍后链接target_link_libraries(MyProject INTERFACE ${LIBOMP})

不确定这是否是您编辑 cmake 文件的选项,或者是否可以轻松完成。

但是,上面的解决方案首先不起作用,因为我将提示设置为~/.linuxbrew/opt/libomp,就像您设置 shell 变量一样。也许附加lib/目录已经有帮助了?

相关内容