vcpkg官方库不支持poppler qt5,只能编译poppler qt6,手动修改vcpkg/ports/poppler/下面的文件也不管用,核心问题是vcpkg里面的portfile.cmake开头的从互联网下载的poppler源码里面检测qt 5.12,解决方案是自己去poppler官方网站下载最新版本的poppler源码,解压缩以后修改里面的cmakelists.txt,关掉没用的参数,再设置vcpkg使用自己下载的源码编译就可以了。
手动下载解压缩以后的poppler源码里面的cmakelists.txt要修改的内容有:
option(BUILD_GTK_TESTS "Whether to compile the GTK+ test programs." OFF)
option(BUILD_QT5_TESTS "Whether to compile the Qt5 test programs." OFF)
option(BUILD_QT6_TESTS "Whether to compile the Qt6 test programs." OFF)
option(BUILD_CPP_TESTS "Whether to compile the CPP test programs." OFF)
option(BUILD_MANUAL_TESTS "Whether to compile manual test programs." OFF)
option(ENABLE_QT5 "Compile poppler qt5 wrapper." ON)
option(ENABLE_QT6 "Compile poppler qt6 wrapper." OFF)
然后去修改vcpkg/ports/poppler/portfile.cmake文件
# vcpkg_from_gitlab(
# GITLAB_URL https://gitlab.freedesktop.org
# OUT_SOURCE_PATH SOURCE_PATH
# REPO poppler/poppler
# REF "poppler-${POPPLER_VERSION}"
# SHA512 5997af5698a793aefcc1d0d98ea2e0732c0ce0adfa1e5be182ba2d425b1691ba84dfa89f0cdafacf19756d411b2b2de665d1a4682acf21ad5d3353dfeac0727c
# HEAD_REF master
# PATCHES
# export-unofficial-poppler.patch
# private-namespace.patch
# )
# file(REMOVE "${SOURCE_PATH}/cmake/Modules/FindFontconfig.cmake")
set(SOURCE_PATH "/data/cpp/poppler-25.02.0")
前面的vcpkg_from_gitlab注释掉,然后把下面所有的qt6改成qt5,注释掉#vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-poppler)
然后vcpkg install poppler[qt] 安装就可以了。