我正在尝试从源代码安装 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/
目录已经有帮助了?