【问题标题】:Cmake gives me an error (pthread_create not found) while building BornAgainCmake 在构建 BornAgain 时给了我一个错误(pthread_create not found)
【发布时间】:2020-08-14 11:05:35
【问题描述】:

我正在尝试在运行最新版本的 Fedora 32 的计算机上构建 BornAgain 软件。我之前设法做到了,但我什至不知道从哪里开始出现我遇到的错误。在我的终端中,我收到以下错误:

> [sjoerd@dhcp-10-240-34-181 ~]$ sudo cmake -DCMAKE_INSTALL_PREFIX=/home/sjoerd/.BornAgain /home/sjoerd/BornAgain/BornAgain  
[sudo] lösenord för sjoerd:   
-- The C compiler identification is GNU 10.2.1  
-- The CXX compiler identification is GNU 10.2.1  
-- Check for working C compiler: /usr/bin/cc  
-- Check for working C compiler: /usr/bin/cc - works  
-- Detecting C compiler ABI info  
-- Detecting C compiler ABI info - done  
-- Detecting C compile features  
-- Detecting C compile features - done  
-- Check for working CXX compiler: /usr/bin/c++  
-- Check for working CXX compiler: /usr/bin/c++ - works  
-- Detecting CXX compiler ABI info  
-- Detecting CXX compiler ABI info - done  
-- Detecting CXX compile features  
-- Detecting CXX compile features - done  
-- Looking for pthread.h  
-- Looking for pthread.h - found  
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD  
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed  
-- Looking for pthread_create in pthreads  
-- Looking for pthread_create in pthreads - not found  
-- Looking for pthread_create in pthread  
-- Looking for pthread_create in pthread - found  
-- Found Threads: TRUE  
-- Found FFTW3: /usr/lib64/libfftw3.so  
-- Found FFTW3: includes at /usr/include, libraries at /usr/lib64/libfftw3.so  
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.6.3")   
-- Found GSL: /usr/include (found version "2.6")   
-- GSL found=TRUE libs=/usr/lib64/libgsl.so;/usr/lib64/libgslcblas.so inc=/usr/include version={GSL_VERSION}  
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "3.3")   
-- Eigen3 include_dir=/usr/include/eigen3 version=3.3.7  
-- Could NOT find Cerf (missing: Cerf_LIBRARIES Cerf_INCLUDE_DIR)   
-- Search cerf in Cerf_LIBRARIES-NOTFOUND  
> CMake Error: The following variables are used in this project, but they are set to NOTFOUND.  
Please set them or make sure they are set and tested correctly in the CMake files:
Cerf_LIBRARIES  
    linked by target "cmTC_6517d" in directory /home/sjoerd/CMakeFiles/CMakeTmp  
> 
> CMake Error at cmake/extensions/AssertLibraryFunction.cmake:86 (try_compile):  
  Failed to generate test project build system.  
Call Stack (most recent call first):  
  cmake/extensions/FindCerf.cmake:33 (assert_library_function)  
  cmake/modules/SearchInstalledSoftware.cmake:21 (find_package)  
  CMakeLists.txt:64 (include)  
> 
> 
> -- Configuring incomplete, errors occurred!  
See also "/home/sjoerd/CMakeFiles/CMakeOutput.log".  
See also "/home/sjoerd/CMakeFiles/CMakeError.log".  
[sjoerd@dhcp-10-240-34-181 ~]$   

我一直在尝试按照他们网页上的说明进行操作: https://www.bornagainproject.org/documentation/getting-started/installation/linux-detailed/third-party/
https://www.bornagainproject.org/documentation/getting-started/installation/linux-detailed/build-and-install/

我最大的问题是他们有 Ubuntu、OpenSUSE 和 RedHat/CentOS 的说明。我认为罪魁祸首在于他们安装 devtoolset 的说明(试图遵循 RedHat 说明),这似乎不存在于 Fedora 存储库中。我基本上尝试安装任何相关的东西,并尝试了他们为每个发行版命名的所有包,但我无法超越上面输入的错误。

【问题讨论】:

  • 再看一点 pthread_create 不是问题Looking for pthread_create in pthread - found 实际问题是它找不到Cerf 库。
  • 仅供参考,真的不应该使用sudo 来运行cmake,如上所示。仅在需要时保存root 权限。
  • 谢谢,我知道这一点,而且我通常不会将root 特权授予随机命令。但在这一点上,我变得绝望,正在尝试随机的东西,看看是否有效。显然它没有,但你是对的。随机授予root 特权是不好的做法,在这种情况下充其量是完全没有意义的。

标签: linux cmake fedora


【解决方案1】:

谢谢艾尔克! 鉴于Cerf_LIBRARIES 上 Ǵoogle 的点击量,我不敢相信我实际上花了一半的工作时间在这上面,我认为这是我尝试安装的软件中的特定内容。

鉴于您分别格式化了Cerf,我用谷歌搜索了一下,我很快发现我可以直接从 dnf 包管理器安装libcerflibcerf-devel。这立即解决了我的整个问题。谢谢你解决了这个头疼的问题,没早点发现我有点傻。

【讨论】:

    猜你喜欢
    • 2020-10-24
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 2019-10-31
    相关资源
    最近更新 更多