找不到 Glog(缺少:GLOG_INCLUDE_DIR GLOG_LIBRARY)

Could NOT find Glog (missing: GLOG_INCLUDE_DIR GLOG_LIBRARY)

我正在尝试使用 CMAKE 在 Ubuntu 20.04 中安装 openpose,但出现以下错误:

Could NOT find Glog (missing: GLOG_INCLUDE_DIR GLOG_LIBRARY) 

我按照此处的说明操作(不幸的是,屏幕截图不可用,但我只是按照文本命令操作): https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/master/doc/installation/README.md

我在 openpose 文件夹中创建了一个 build 文件夹,然后 运行 cmake-gui .. 命令。

一个 GUI 打开,所有这些都被选中(我没有改变任何东西):

错误是:

GCC detected, adding compile flags
GCC detected, adding compile flags
Building with CUDA.
CUDA detected: 10.1
Added CUDA NVCC flags for: sm_75
cuDNN not found
Found gflags  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libgflags.so)
Could NOT find Glog (missing: GLOG_INCLUDE_DIR GLOG_LIBRARY) 
CMake Warning at /usr/share/cmake-3.16/Modules/FindProtobuf.cmake:499 (message):
  Protobuf compiler version 3.13.0 doesn't match library version 3.6.1
Call Stack (most recent call first):
  CMakeLists.txt:429 (find_package)


Found Protobuf: /usr/lib/x86_64-linux-gnu/libprotobuf.so;-lpthread (found version "3.6.1") 
Found OpenCV: /usr (found version "4.2.0") 
cuDNN not found.
#!/bin/bash

echo "This script assumes Ubuntu 16 or 14 and Nvidia Graphics card up to 10XX. Otherwise, it will fail."

# Install cuDNN 5.1
if [[ $UBUNTU_VERSION == *"14."* ]] || [[ $UBUNTU_VERSION == *"15."* ]] || [[ $UBUNTU_VERSION == *"16."* ]]; then
    CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz"
    wget -c ${CUDNN_URL}
    sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
    rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig
else
    echo "cuDNN NOT INSTALLED! Ubuntu 16 or 14 not found. Install cuDNN manually from 'https://developer.nvidia.com/cudnn'."
fi

CMake Error at CMakeLists.txt:520 (message):
  Install cuDNN using the above commands.  or turn off cuDNN by setting
  USE_CUDNN to OFF.


Configuring incomplete, errors occurred!
See also "/home/mona/research/code/openpose/build/CMakeFiles/CMakeOutput.log".
See also "/home/mona/research/code/openpose/build/CMakeFiles/CMakeError.log".

然后,我使用 sudo apt-get install libgflags-dev 命令安装了 gflags,但我仍然遇到同样的错误。我该如何解决这个问题?

这是 git log 以查看我在哪个版本的 repo 重现错误:

$ git log
commit a255747af22116ad76004437456bb531dc5d0b23 (HEAD -> master, origin/master, origin/HEAD)
Author: Wlad Meixner <9556979+gosticks@users.noreply.github.com>
Date:   Mon Dec 21 22:01:10 2020 +0100

    Fix possible typo (#1802)

CMakeOutput.log和CMakeError.log可以在这里找到https://github.com/CMU-Perceptual-Computing-Lab/openpose/issues/1814

$ sudo apt install libgoogle-glog-dev 

此外,

$ sudo apt-get install libgflags-dev
$ sudo apt install libgoogle-glog-dev
$ sudo apt-get install protobuf-compiler libprotobuf-dev

因为最初我没有安装任何一个。

如果您从命令行获得 运行 它,您应该已经看到它们...

 if (NOT GLOG_FOUND)
    message(FATAL_ERROR "Glog not found. Install Glog from the command line using the command(s) -\
      sudo apt-get install libgoogle-glog-dev")
  endif (NOT GLOG_FOUND)

  if (NOT GFLAGS_FOUND)
    message(FATAL_ERROR "GFlags not found. Install GFlags from the command line using the command(s) --\
      sudo apt-get install libgflags-dev")
  endif (NOT GFLAGS_FOUND)

  if (NOT OpenCV_FOUND)
    message(FATAL_ERROR "OpenCV not found. Install OpenCV from the command line using the command(s) --\
      sudo apt-get install libopencv-dev")
  endif (NOT OpenCV_FOUND)

参考:https://github.com/CMU-Perceptual-Computing-Lab/openpose/blob/5a9acc730915f2171badcf10076aef9213f38e01/CMakeLists.txt#L523-L537

注意:更好的方法是在缺少第三方时使用 FetchContent()(因为他们提供基于 CMake 的构建),而且提供的命令仅 ubuntu...