/usr/bin/ld:找不到 -lpthreads

/usr/bin/ld:找不到 -lpthreads

我正在尝试编译此处提供的代码,但是我在尝试运行命令 cmake 时遇到了困难。

运行此命令时很多东西输出到屏幕,其中有以下几行:

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:
G2O_EXT_CSPARSE

并且

-- Configuring incomplete, errors occurred!
See also "/home/yalishanda/Downloads/lsd_slam_noros-master/build/CMakeFiles/CMakeOutput.log".
See also "/home/yalishanda/Downloads/lsd_slam_noros-master/build/CMakeFiles/CMakeError.log".

因此,当对 CMakeError.log 进行 cat 时,我可以看到以及许多其他事情 这:

/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_792f7.dir/build.make:97: recipe for target 'cmTC_792f7' failed

我已经使用以下命令安装了 pthreads:

 sudo apt-get install libpthread-stubs0-dev

甚至返回:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
libpthread-stubs0-dev is already the newest version (0.3-4).
The following package was automatically installed and is no longer required:
  snap-confine
Use 'sudo apt autoremove' to remove it.
0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

所以我认为这不应该是问题,但错误输出文件却对此抱怨。

我也已经阅读了 SE 上与此类错误相关的另外 2 篇文章,但它们并未解决我的问题。

有人可以解释一下我做错了什么吗?

答案1

这似乎是 CMake 的一个长期错误。其他问题出现了,CMake 感到困惑,并报告了这个虚假问题而不是真正的错误。

在 CMakeLists.txt 文件中查找“thread”并暂时删除它。

答案2

此错误可能与库链接有关。我遇到了同样的问题,但安装build-essential包解决了问题。尝试apt-get install build-essential

答案3

这是一个老问题,但当我在搜索引擎上搜索错误消息时,它是第一个出现的结果之一:

/usr/bin/ld: cannot find -lpthreads

这里的问题是拼写错误:-lpthreads应为-lpthread;没有尾随s

或者,至少在 的某些版本中ld,您也可以使用-pthread

相关内容