How do i use poppler lib in Qt quick application.
-
@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 ?
-
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 ?
-
@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.
-
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) -
Did you follow the example I linked ?
-
@SGaist
sir, i tried it many times .i changed the architecture and tried many times but it only compile to x86_64 architecture only.I think this is related to configuration mistake that i made cmake compilation process. sorry for my bad english .google translate help me very much these days. -
What did you do exactly for your latest try ?
-
@SGaist
sir, i couldnt understant this line " CFLAGS=-std=gnu99 STANDALONE_EXTRA="--arch arm64" /opt/helpers/build-standalone " which is in the link you given click here -
The line contains the instructions to configure, build and install freetype for Android..
-
@SGaist
sir,cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=~/Desktop/c++/poppler-21.06.1/build.cmake
contents of CMakeError.log
Determining if the function fseek64 exists failed with the following output:
Change Dir: /home/nivilwilsonp/Desktop/c++/poppler-21.06.1/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/ninja cmTC_8bd25 && [1/2] Building C object CMakeFiles/cmTC_8bd25.dir/CheckFunctionExists.c.o
[2/2] Linking C executable cmTC_8bd25
FAILED: cmTC_8bd25
: && /home/nivilwilsonp/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21 -Wall -std=c99 -D_DEFAULT_SOURCE -DCHECK_FUNCTION_EXISTS=fseek64 -g -funwind-tables -no-canonical-prefixes -fexceptions -fPIE -pie -Wl,--gc-sections CMakeFiles/cmTC_8bd25.dir/CheckFunctionExists.c.o -o cmTC_8bd25 -latomic -lm && :
CMakeFiles/cmTC_8bd25.dir/CheckFunctionExists.c.o: In functionmain': /usr/share/cmake-3.16/Modules/CheckFunctionExists.c:17: undefined reference to
fseek64'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.Determining if the function ftell64 exists failed with the following output:
Change Dir: /home/nivilwilsonp/Desktop/c++/poppler-21.06.1/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/ninja cmTC_5f037 && [1/2] Building C object CMakeFiles/cmTC_5f037.dir/CheckFunctionExists.c.o
[2/2] Linking C executable cmTC_5f037
FAILED: cmTC_5f037
: && /home/nivilwilsonp/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21 -Wall -std=c99 -D_DEFAULT_SOURCE -DCHECK_FUNCTION_EXISTS=ftell64 -g -funwind-tables -no-canonical-prefixes -fexceptions -fPIE -pie -Wl,--gc-sections CMakeFiles/cmTC_5f037.dir/CheckFunctionExists.c.o -o cmTC_5f037 -latomic -lm && :
CMakeFiles/cmTC_5f037.dir/CheckFunctionExists.c.o: In functionmain': /usr/share/cmake-3.16/Modules/CheckFunctionExists.c:17: undefined reference to
ftell64'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.Performing C SOURCE FILE Test HAVE_NDIR_H failed with the following output:
Change Dir: /home/nivilwilsonp/Desktop/c++/poppler-21.06.1/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/ninja cmTC_53db5 && [1/2] Building C object CMakeFiles/cmTC_53db5.dir/src.c.o
FAILED: CMakeFiles/cmTC_53db5.dir/src.c.o
/home/nivilwilsonp/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21 -Wall -std=c99 -D_DEFAULT_SOURCE -DHAVE_NDIR_H -g -funwind-tables -no-canonical-prefixes -fexceptions -o CMakeFiles/cmTC_53db5.dir/src.c.o -c src.c
src.c:1:10: fatal error: 'ndir.h' file not found
#include <ndir.h>
^~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.Source file was:
#include <ndir.h>int main(int argc, char argv[])
{
DIR d = 0;
return 0;
}Performing C SOURCE FILE Test HAVE_SYS_DIR_H failed with the following output:
Change Dir: /home/nivilwilsonp/Desktop/c++/poppler-21.06.1/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/ninja cmTC_4a64d && [1/2] Building C object CMakeFiles/cmTC_4a64d.dir/src.c.o
FAILED: CMakeFiles/cmTC_4a64d.dir/src.c.o
/home/nivilwilsonp/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21 -Wall -std=c99 -D_DEFAULT_SOURCE -DHAVE_SYS_DIR_H -g -funwind-tables -no-canonical-prefixes -fexceptions -o CMakeFiles/cmTC_4a64d.dir/src.c.o -c src.c
src.c:1:10: fatal error: 'sys/dir.h' file not found
#include <sys/dir.h>
^~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.Source file was:
#include <sys/dir.h>int main(int argc, char argv[])
{
DIR d = 0;
return 0;
}Performing C SOURCE FILE Test HAVE_SYS_NDIR_H failed with the following output:
Change Dir: /home/nivilwilsonp/Desktop/c++/poppler-21.06.1/build/CMakeFiles/CMakeTmpRun Build Command(s):/usr/bin/ninja cmTC_5a9f7 && [1/2] Building C object CMakeFiles/cmTC_5a9f7.dir/src.c.o
FAILED: CMakeFiles/cmTC_5a9f7.dir/src.c.o
/home/nivilwilsonp/Android/Sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none-linux-android21 -Wall -std=c99 -D_DEFAULT_SOURCE -DHAVE_SYS_NDIR_H -g -funwind-tables -no-canonical-prefixes -fexceptions -o CMakeFiles/cmTC_5a9f7.dir/src.c.o -c src.c
src.c:1:10: fatal error: 'sys/ndir.h' file not found
#include <sys/ndir.h>
^~~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.Source file was:
#include <sys/ndir.h>int main(int argc, char argv[])
{
DIR d = 0;
return 0;
} -
Which step did you do exactly ?