CMake 3.18.0 找不到 libopenjpeg2

Posted

技术标签:

【中文标题】CMake 3.18.0 找不到 libopenjpeg2【英文标题】:CMake 3.18.0 not finding libopenjpeg2 【发布时间】:2020-07-16 19:45:04 【问题描述】:

请原谅我对 Cmake 的无知。我正在尝试在 Centos 7 上安装 Poppler 0.86.1,但我遇到了一个错误,上面写着 CMake Error at CMakeLists.txt:208 (message): Install libopenjpeg2 before trying to build poppler. 我已经通过运行以下命令安装了包含开发包的 libopenjpeg2:

sudo yum install openjpeg2-devel

我正在采取以下步骤来安装 poppler:

wget https://poppler.freedesktop.org/poppler-0.86.1.tar.xz
tar xf poppler-0.86.1.tar.xz
cd poppler-0.86.1/
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..

这会导致以下错误

 CMake Error at CMakeLists.txt:208 (message):
 Install libopenjpeg2 before trying to build poppler.  You can also decide
 to use the internal unmaintained JPX decoder or none at all.


-- Configuring incomplete, errors occurred!

这是 CMakeLists.txt 中发生故障的地方

if(ENABLE_LIBOPENJPEG STREQUAL "openjpeg2")
  find_package(OpenJPEG)
  set(WITH_OPENJPEG $OpenJPEG_FOUND)
  if(NOT OpenJPEG_FOUND OR OPENJPEG_MAJOR_VERSION VERSION_LESS 2)
      message(FATAL_ERROR "Install libopenjpeg2 before trying to build poppler. You can also decide to use the internal unmaintained JPX decoder or none at all.")
  endif()
  ...

谁能指出我正确的方向来弄清楚如何让 Poppler 0.86.1 在 Centos 7 上成功安装?

【问题讨论】:

你确定 CentOS 打包了正确的 CMake 包文件吗?否则撤消此提交。 gitlab.freedesktop.org/poppler/poppler/-/commit/… 【参考方案1】:

如果我没记错的话,当我尝试在我的 Docker 映像中使用最新版本的 Poppler 时,我遇到了同样的问题。我通过安装libopenjp2-7-dev 修复了它。请检查my answer,特别是我的 Dockerfile 的第二行,您可以在其中看到我在运行 cmake 之前安装的内容。

【讨论】:

以上是关于CMake 3.18.0 找不到 libopenjpeg2的主要内容,如果未能解决你的问题,请参考以下文章

CMake 找不到 GLEW

CMake 找不到诅咒

CMake 找不到 Ninja

如果更改了 CMAKE_RUNTIME_OUTPUT_DIRECTORY,CMake 找不到测试

cmake找不到静态库

CMake 3.9.1:Cmake 找不到库 ncurses