Код: Выделить всё
option(ENABLE_UNSTABLE_API_ABI_HEADERS "Install API/ABI unstable xpdf headers." OFF)
option(BUILD_GTK_TESTS "Whether to compile the GTK+ test programs." OFF) #I turned it off
option(BUILD_QT5_TESTS "Whether to compile the Qt5 test programs." OFF) #I turned it off
option(BUILD_QT6_TESTS "Whether to compile the Qt6 test programs." OFF) #I turned it off
option(BUILD_CPP_TESTS "Whether to compile the CPP test programs." ON)
option(BUILD_MANUAL_TESTS "Whether to compile manual test programs." ON)
option(ENABLE_BOOST "Use boost (for Splash backend performance)." ON)
option(ENABLE_UTILS "Compile poppler command line utils." ON)
option(ENABLE_CPP "Compile poppler cpp wrapper." ON)
option(ENABLE_GLIB "Compile poppler glib wrapper." OFF) #I turned it off
option(ENABLE_GOBJECT_INTROSPECTION "Whether to generate GObject introspection." OFF) #I turned it off
option(ENABLE_GTK_DOC "Whether to generate glib API documentation." OFF)
option(ENABLE_QT5 "Compile poppler qt5 wrapper." OFF) #I turned it off
option(ENABLE_QT6 "Compile poppler qt6 wrapper." OFF) #I turned it off
set(ENABLE_LIBOPENJPEG "openjpeg2" CACHE STRING "Use libopenjpeg for JPX streams. Possible values: openjpeg2, unmaintained, none. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no JPX decoder at all. Default: openjpeg2")
set(ENABLE_DCTDECODER "libjpeg" CACHE STRING "Use libjpeg for DCT streams. Possible values: libjpeg, unmaintained, none. will use libjpeg if available or fail if not. 'unmaintained' gives you the internal unmaintained decoder. Use at your own risk. 'none' compiles no DCT decoder at all. Default: libjpeg")
option(ENABLE_LCMS "Use LCMS for color management." ON)
option(ENABLE_LIBCURL "Build libcurl based HTTP support." ON)
option(ENABLE_LIBTIFF "Build code to write images as TIFF (pdfimages/pdftocairo/etc)." ON)
option(ENABLE_NSS3 "Build the NSS backend for cryptographic support" ON)
option(ENABLE_GPGME "Build the GPG backend for cryptographic support" ON)
option(ENABLE_PGP_SIGNATURES "Enable pgp signatures in GPG backend by default" OFF)
option(ENABLE_ZLIB_UNCOMPRESS "Use zlib to uncompress flate streams (not totally safe)." OFF)
option(USE_FLOAT "Use single precision arithmetic in the Splash backend" OFF)
option(BUILD_SHARED_LIBS "Build poppler as a shared library" ON)
option(RUN_GPERF_IF_PRESENT "Run gperf if it is found" ON)
option(INSTALL_GLIB_DEMO "Whether to install the poppler-glib-demo program." OFF)
< /code>
После установки некоторых зависимостей мне удалось успешно скомпилировать (я считаю, что это было успешным, потому что я не видел никаких ошибок в красном). Теперь я могу видеть включение файлов каталога Poppler CPP в/usr/local/include/poppler/cpp
Чтобы проверить мою установку, я создал простой файл CPP следующим образом: < /p>
#include
#include "poppler-page-renderer.h"
using namespace std;
int main(int argc, char *argv[])
{
if (poppler::page_renderer::can_render() == true) cout
< /li>
< /ol>
g++ -I/usr/local/include/poppler/cpp -L/usr/local/lib main.cpp -o main
/usr/bin/ld: /tmp/ccGZ4L6d.o: in function `main':
main.cpp:(.text+0x14): undefined reference to `poppler::page_renderer::can_render()'
collect2: error: ld returned 1 exit status
< /code>
< /li>
< /ol>
g++ -I/usr/local/include/poppler/cpp -c main.cpp
g++ /usr/local/lib/libpoppler.so.147.0.0 /usr/local/lib/libpoppler-cpp.so.2.0.0 main.o -o main
/usr/bin/ld: main.o: in function `main':
main.cpp:(.text+0x14): undefined reference to `poppler::page_renderer::can_render()'
collect2: error: ld returned 1 exit status
< /code>
ppppler-page-renderer.h
#ifndef POPPLER_PAGE_RENDERER_H
#define POPPLER_PAGE_RENDERER_H
#include "poppler-global.h"
#include "poppler-image.h"
namespace poppler {
typedef unsigned int argb;
class page;
class page_renderer_private;
class POPPLER_CPP_EXPORT page_renderer : public poppler::noncopyable
{
public:
enum render_hint
{
antialiasing = 0x00000001,
text_antialiasing = 0x00000002,
text_hinting = 0x00000004
};
enum line_mode_enum
{
line_default,
line_solid,
line_shape
};
page_renderer();
~page_renderer();
argb paper_color() const;
void set_paper_color(argb c);
unsigned int render_hints() const;
void set_render_hint(render_hint hint, bool on = true);
void set_render_hints(unsigned int hints);
image::format_enum image_format() const;
void set_image_format(image::format_enum format);
line_mode_enum line_mode() const;
void set_line_mode(line_mode_enum mode);
image render_page(const page *p, double xres = 72.0, double yres = 72.0, int x = -1, int y = -1, int w = -1, int h = -1, rotation_enum rotate = rotate_0) const;
static bool can_render();
private:
page_renderer_private *d;
friend class page_renderer_private;
};
}
#endif
< /code>
Как успешно скомпилировать мою программу? Мой процесс сборки библиотеки Poppler CPP не удалось?
Подробнее здесь: https://stackoverflow.com/questions/795 ... t-to-compi