How do i use poppler lib in Qt quick application.
- 
@NIvil-Wilson said in How do i use poppler lib in Qt quick application.: /usr/local/lib//libpoppler-qt5.so I'm sure this is not poppler built for Android. 
 You have to provide proper path to the Android version using LIBS.@jsulm 
 sir,
 this is my cmak_install file.could you please check it .# Install script for directory: /home/nivilwilsonp/Pictures/poppler-21.03.0 # Set the install prefix if(NOT DEFINED CMAKE_INSTALL_PREFIX) set(CMAKE_INSTALL_PREFIX "/usr/local") endif() string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") # Set the install configuration name. if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) if(BUILD_TYPE) string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") else() set(CMAKE_INSTALL_CONFIG_NAME "RelWithDebInfo") endif() message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") endif() # Set the component getting installed. if(NOT CMAKE_INSTALL_COMPONENT) if(COMPONENT) message(STATUS "Install component: \"${COMPONENT}\"") set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") else() set(CMAKE_INSTALL_COMPONENT) endif() endif() # Install shared libraries without execute permission? if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) set(CMAKE_INSTALL_SO_NO_EXE "1") endif() # Is this installation the result of a crosscompile? if(NOT DEFINED CMAKE_CROSSCOMPILING) set(CMAKE_CROSSCOMPILING "TRUE") set(CMAKE_SYSTEM_NAME Android) set(CMAKE_SYSTEM_VERSION 24) # API level set(CMAKE_ANDROID_ARCH_ABI armeabi-v7a) set(CMAKE_ANDROID_NDK /home/nivilwilsonp/Android/Sdk/ndk/21.3.6528147) set(CMAKE_ANDROID_STL_TYPE gnustl_static) endif() if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) foreach(file "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so.108.0.0" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so.108" ) if(EXISTS "${file}" AND NOT IS_SYMLINK "${file}") file(RPATH_CHECK FILE "${file}" RPATH "") endif() endforeach() file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/nivilwilsonp/Pictures/poppler-21.03.0/build/libpoppler.so.108.0.0" "/home/nivilwilsonp/Pictures/poppler-21.03.0/build/libpoppler.so.108" ) foreach(file "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so.108.0.0" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so.108" ) if(EXISTS "${file}" AND NOT IS_SYMLINK "${file}") if(CMAKE_INSTALL_DO_STRIP) execute_process(COMMAND "/usr/bin/strip" "${file}") endif() endif() endforeach() endif() if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so" AND NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so") file(RPATH_CHECK FILE "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so" RPATH "") endif() file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib" TYPE SHARED_LIBRARY FILES "/home/nivilwilsonp/Pictures/poppler-21.03.0/build/libpoppler.so") if(EXISTS "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so" AND NOT IS_SYMLINK "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so") if(CMAKE_INSTALL_DO_STRIP) execute_process(COMMAND "/usr/bin/strip" "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/libpoppler.so") endif() endif() endif() if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/home/nivilwilsonp/Pictures/poppler-21.03.0/build/poppler.pc") endif() if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/home/nivilwilsonp/Pictures/poppler-21.03.0/build/poppler-qt5.pc") endif() if("x${CMAKE_INSTALL_COMPONENT}x" STREQUAL "xUnspecifiedx" OR NOT CMAKE_INSTALL_COMPONENT) file(INSTALL DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" TYPE FILE FILES "/home/nivilwilsonp/Pictures/poppler-21.03.0/build/poppler-cpp.pc") endif() if(NOT CMAKE_INSTALL_LOCAL_ONLY) # Include the install script for each subdirectory. include("/home/nivilwilsonp/Pictures/poppler-21.03.0/build/utils/cmake_install.cmake") include("/home/nivilwilsonp/Pictures/poppler-21.03.0/build/test/cmake_install.cmake") include("/home/nivilwilsonp/Pictures/poppler-21.03.0/build/qt5/cmake_install.cmake") include("/home/nivilwilsonp/Pictures/poppler-21.03.0/build/cpp/cmake_install.cmake") endif() if(CMAKE_INSTALL_COMPONENT) set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") else() set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") endif() string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT "${CMAKE_INSTALL_MANIFEST_FILES}") file(WRITE "/home/nivilwilsonp/Pictures/poppler-21.03.0/build/${CMAKE_INSTALL_MANIFEST}" "${CMAKE_INSTALL_MANIFEST_CONTENT}")
- 
Hi, I would avoid putting a library like that built for a different architecture/OS in such a generic path. You should store in an explicit dedicated folder. 
- 
@jsulm 
 after building poppler for android it shows the same errror
 skipping incompatible /usr/local/lib//libpoppler-qt5.so when searching for -lpoppler-qt5.@NIvil-Wilson said in How do i use poppler lib in Qt quick application.: skipping incompatible /usr/local/lib//libpoppler-qt5.so when searching for -lpoppler-qt5. This error clearly states that /usr/local/lib//libpoppler-qt5.so is not compatible with what you are building. 
 Dofile /usr/local/lib//libpoppler-qt5.soand post its output here. 
- 
@NIvil-Wilson said in How do i use poppler lib in Qt quick application.: skipping incompatible /usr/local/lib//libpoppler-qt5.so when searching for -lpoppler-qt5. This error clearly states that /usr/local/lib//libpoppler-qt5.so is not compatible with what you are building. 
 Dofile /usr/local/lib//libpoppler-qt5.soand post its output here. @jsulm said in How do i use poppler lib in Qt quick application.: file /usr/local/lib//libpoppler-qt5.so /usr/local/lib//libpoppler-qt5.so: symbolic link to libpoppler-qt5.so.1 
- 
@jsulm said in How do i use poppler lib in Qt quick application.: file /usr/local/lib//libpoppler-qt5.so /usr/local/lib//libpoppler-qt5.so: symbolic link to libpoppler-qt5.so.1 @NIvil-Wilson Then do file /usr/local/lib//libpoppler-qt5.so.1
- 
@NIvil-Wilson Then do file /usr/local/lib//libpoppler-qt5.so.1@jsulm 
 sir,
 the result for the command file /usr/local/lib//libpoppler-qt5.so.1 is
 /usr/local/lib//libpoppler-qt5.so.1: symbolic link to libpoppler-qt5.so.1.27.0
- 
Hi, I would avoid putting a library like that built for a different architecture/OS in such a generic path. You should store in an explicit dedicated folder. @SGaist 
 sir, i tried that too but the same problem occurs
- 
@jsulm 
 sir,
 the result for the command file /usr/local/lib//libpoppler-qt5.so.1 is
 /usr/local/lib//libpoppler-qt5.so.1: symbolic link to libpoppler-qt5.so.1.27.0@NIvil-Wilson said in How do i use poppler lib in Qt quick application.: @jsulm 
 sir,
 the result for the command file /usr/local/lib//libpoppler-qt5.so.1 is
 /usr/local/lib//libpoppler-qt5.so.1: symbolic link to libpoppler-qt5.so.1.27.0Check that file then. Did you ensure that cmake is finding your cross-compiled version and not the one from your system ? 
- 
@NIvil-Wilson said in How do i use poppler lib in Qt quick application.: @jsulm 
 sir,
 the result for the command file /usr/local/lib//libpoppler-qt5.so.1 is
 /usr/local/lib//libpoppler-qt5.so.1: symbolic link to libpoppler-qt5.so.1.27.0Check that file then. Did you ensure that cmake is finding your cross-compiled version and not the one from your system ? @SGaist 
 sir,
 yes i ensured that the cmake is finding cross-compiled version and not the one from the system .
 i stored the cross-compiled version in an explicit dedicated folder and the same message appears.
 please help
- 
Did you check the architecture of your cross-compiled library ? 
- 
@SGaist 
 sir ,
 the architecture of cross-compiled library is given below.readelf -h libpoppler-qt5.so.1.27.0 
 ELF Header:
 Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
 Class: ELF64
 Data: 2's complement, little endian
 Version: 1 (current)
 OS/ABI: UNIX - System V
 ABI Version: 0
 Type: DYN (Shared object file)
 Machine: Advanced Micro Devices X86-64
 Version: 0x1
 Entry point address: 0x334f0
 Start of program headers: 64 (bytes into file)
 Start of section headers: 14323992 (bytes into file)
 Flags: 0x0
 Size of this header: 64 (bytes)
 Size of program headers: 56 (bytes)
 Number of program headers: 11
 Size of section headers: 64 (bytes)
 Number of section headers: 39
 Section header string table index: 38
- 
@NIvil-Wilson said in How do i use poppler lib in Qt quick application.: Machine: Advanced Micro Devices X86-64 Is your device running on a x86_64 machine ? 
- 
@NIvil-Wilson said in How do i use poppler lib in Qt quick application.: Machine: Advanced Micro Devices X86-64 Is your device running on a x86_64 machine ? @SGaist said in How do i use poppler lib in Qt quick application.: x86_64 uname -a 
 Linux nivilwilsonp-desktop 5.8.0-48-generic #54~20.04.1-Ubuntu SMP Sat Mar 20 13:40:25 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
- 
Your desktop machine is. I meant the target that runs Android. In any case, if it's ARM, libpoppler was not cross-compiled. 
- 
Your desktop machine is. I meant the target that runs Android. In any case, if it's ARM, libpoppler was not cross-compiled. @SGaist 
 sir,
 the target device is ARM.could you give me instructions to cross compile libpoppler for ARM.
- 
What did you do to build poppler until now ? 
- 
@SGaist 
 sir,
 i used the settings given below to cross compile poppler libraryif(NOT DEFINED CMAKE_CROSSCOMPILING) 
 set(CMAKE_CROSSCOMPILING "TRUE")
 endif()set(CMAKE_SYSTEM_NAME Android) 
 set(CMAKE_SYSTEM_VERSION 21) # API level
 set(CMAKE_ANDROID_ARCH_ABI arm64-v8a)
 set(CMAKE_ANDROID_NDK /home/nivilwilsonp/Android/Sdk/ndk/21.3.6528147)
 set(CMAKE_ANDROID_STL_TYPE c++_shared)
- 
@SGaist 
 sir, i tried to compile poppler for android arm64-v8a but it always compiled to "x86_64".
- 
Did you follow the example I linked ? 
 

