【问题标题】:RedHat MultiNest: failed install, issue with CMake/BLAS/LAPACK (or pthreads)RedHat MultiNest:安装失败,CMake/BLAS/LAPACK(或 pthreads)问题
【发布时间】:2015-03-09 03:12:22
【问题描述】:

我正在尝试在运行 Enterprise Red Hat 6.6(圣地亚哥)的桌面上安装 MultiNest。我下载了必要的包(MultiNest_v3.9_CMake.tar.gz),并按照安装说明进行操作:

cd MultiNest/build
cmake ..

虽然安装了 BLAS 和 LAPACK,但出现以下错误:

/usr/share/cmake/Modules/FindBLAS.cmake:594 处的 CMake 错误(消息): 找不到带有 BLAS API 的必需库。请指定图书馆 地点。 调用堆栈(最近的调用优先): /usr/share/cmake/Modules/FindLAPACK.cmake:142 (find_package) src/CMakeLists.txt:31 (FIND_PACKAGE)

-- 配置不完整,出现错误! 另请参阅“/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeOutput.log”。 另见“/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeError.log”。

有什么建议吗?

输出“CmakeError.log”如下所示,似乎表明问题涉及称为“pthreads”的东西。


确定 pthread_create 是否存在失败,输出如下: 更改目录:/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp

运行编译命令:"/usr/bin/gmake" "cmTryCompileExec4203479411/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec4203479411.dir/build.make CMakeFiles/cmTryCompileExec4203479411.dir/build gmake[1]:进入目录/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp' /usr/local/bin/cmake -E cmake_progress_report /home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec4203479411.dir/CheckSymbolExists.c.o /usr/local/Ureka/python/bin/gcc -o CMakeFiles/cmTryCompileExec4203479411.dir/CheckSymbolExists.c.o -c /home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c Linking C executable cmTryCompileExec4203479411 /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec4203479411.dir/link.txt --verbose=1 /usr/local/Ureka/python/bin/gcc CMakeFiles/cmTryCompileExec4203479411.dir/CheckSymbolExists.c.o -o cmTryCompileExec4203479411 -rdynamic CMakeFiles/cmTryCompileExec4203479411.dir/CheckSymbolExists.c.o: In functionmain': CheckSymbolExists.c:(.text+0xc): 未定义引用pthread_create' collect2: ld returned 1 exit status gmake[1]: Leaving directory/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp' gmake[1]: * [cmTryCompileExec4203479411] 错误 1 gmake: * [cmTryCompileExec4203479411/fast] 错误2

文件 /home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c: /* */

包括

int main(int argc, char** argv) { (void)argv;

ifndef pthread_create

返回 ((int*)(&pthread_create))[argc];

其他

(无效)argc; 返回 0;

endif

}

确定函数 pthread_create 是否存在于 pthread 中失败,输出如下: 更改目录:/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp

运行编译命令:"/usr/bin/gmake" "cmTryCompileExec3959414027/fast" /usr/bin/gmake -f CMakeFiles/cmTryCompileExec3959414027.dir/build.make CMakeFiles/cmTryCompileExec3959414027.dir/build gmake[1]:进入目录/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp' /usr/local/bin/cmake -E cmake_progress_report /home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec3959414027.dir/CheckFunctionExists.c.o /usr/local/Ureka/python/bin/gcc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTryCompileExec3959414027.dir/CheckFunctionExists.c.o -c /usr/local/share/cmake-3.1/Modules/CheckFunctionExists.c Linking C executable cmTryCompileExec3959414027 /usr/local/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec3959414027.dir/link.txt --verbose=1 /usr/local/Ureka/python/bin/gcc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTryCompileExec3959414027.dir/CheckFunctionExists.c.o -o cmTryCompileExec3959414027 -rdynamic -lpthreads /usr/bin/ld: cannot find -lpthreads collect2: ld returned 1 exit status gmake[1]: Leaving directory/home/ianc/Downloads/MultiNest/build/CMakeFiles/CMakeTmp' gmake[1]: * [cmTryCompileExec3959414027] 错误 1 gmake: * [cmTryCompileExec3959414027/fast] 错误2

【问题讨论】:

    标签: installation pthreads redhat lapack blas


    【解决方案1】:

    为构建头文件安装这些库及其开发版本

    libblas{3,-dev} liblapack{3,-dev} libatlas{3-base,-dev} cmake build-essential gfortran

    您也可以尝试安装兼容包。

    【讨论】:

      【解决方案2】:

      上述错误表明在您的系统上找不到 POSIX 线程库libpthreads。此错误源自系统提供的 FindLAPACK.cmake 脚本,而不是源自 MultiNest 包中的某些内容。

      我不知道在 RedHat 上提供此功能的特定库,但您应该可以使用 yum provides pthread 进行检查。在此之后,您可以使用yum install M 安装它,其中M 是上一个命令提供的libpthread 的任何库。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-27
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多