You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Just a question: this seems a bit long winded, am I doing it correctly?
Version of fpcupdeluxe-x86_64-linux:
Welcome @ FPCUPdeluxe.
FPCUPdeluxe V2.4.0d for x86_64-linux-gtk2
Running on Debian GNU/Linux
Build with: FPC 3.2.3 on Win11 x86_64
CPU cores used: 8
Available physical memory: 7813 MB
Available swap: 0 MB
Current install directory: /home/user/development
Found crosscompiler for arm-linux
Got settings from install directory.
Compiling to native works correctly:
$ cd /home/user/development/fpcsrc/packages/sqlite/tests/
$ /home/user/development/fpc/bin/x86_64-linux/fpc -n @/home/user/development/fpc/bin/x86_64-linux/fpc.cfg testapiv3x.pp
Free Pascal Compiler version 3.2.2-r0d122c49 [2024/05/01] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for x86-64
Compiling testapiv3x.pp
testapiv3x.pp(3,2) Warning: APPTYPE is not supported by the target OS
Linking testapiv3x
87 lines compiled, 0.2 sec
1 warning(s) issued
$ file testapiv3x
testapiv3x: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.4.0, stripped
Cross compiling to linux-armhf (for Raspberry Pi):
$ /home/user/development/fpc/bin/x86_64-linux/ppcrossarm -n @/home/user/development/fpc/bin/x86_64-linux/fpc.cfg testapiv3x.pp
Free Pascal Compiler version 3.2.2-r0d122c49 [2024/05/01] for arm
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for ARMHF
Compiling testapiv3x.pp
testapiv3x.pp(3,2) Warning: APPTYPE is not supported by the target OS
Linking testapiv3x
/home/user/development/cross/bin/arm-linux/arm-linux-gnueabihf-ld: cannot find -lsqlite3
Error: Error while linking
Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Ahh, ok, I need the `sqlite3 library files for armhf:
$ wget http://security.debian.org/debian-security/pool/updates/main/s/sqlite3/libsqlite3-0_3.27.2-3+deb10u2_armhf.deb
$ ar x libsqlite3-0_3.27.2-3+deb10u2_armhf.deb
$ tar xvf data.tar.xz
$ cp ./usr/lib/arm-linux-gnueabihf/libsqlite3.so.0 libsqlite3.so
$ /home/user/development/fpc/bin/x86_64-linux/ppcrossarm -n @/home/user/development/fpc/bin/x86_64-linux/fpc.cfg testapiv3x.pp
Free Pascal Compiler version 3.2.2-r0d122c49 [2024/05/01] for arm
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for ARMHF
Compiling testapiv3x.pp
testapiv3x.pp(3,2) Warning: APPTYPE is not supported by the target OS
Linking testapiv3x
/home/user/development/cross/bin/arm-linux/arm-linux-gnueabihf-ld: ./libsqlite3.so: undefined reference to `fcntl64@GLIBC_2.28'
Error: Error while linking
Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
$ wget http://security.debian.org/debian-security/pool/updates/main/g/glibc/libc6_2.28-10+deb10u2_armhf.deb
$ ar x libc6_2.28-10+deb10u2_armhf.deb
$ tar xvf data.tar.xz
$ cp -r ./lib/arm-linux-gnueabihf/* .
$ /home/user/development/fpc/bin/x86_64-linux/ppcrossarm -n @/home/user/development/fpc/bin/x86_64-linux/fpc.cfg testapiv3x.pp
Free Pascal Compiler version 3.2.2-r0d122c49 [2024/05/01] for arm
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Linux for ARMHF
Compiling testapiv3x.pp
testapiv3x.pp(3,2) Warning: APPTYPE is not supported by the target OS
Linking testapiv3x
87 lines compiled, 0.2 sec
1 warning(s) issued
$ file testapiv3x
testapiv3x: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.0.0, stripped
File successfully built - yay! But were my steps necessary or is there an easier method?
The text was updated successfully, but these errors were encountered:
You did the right thing !
However.
Your app needs sqlite3. That library was not included into the cross-libraries as provided by fpcupdeluxe. So you used your own sqlite3.
However2.
Your sqlite3 library came from an older (or newer) linux version compared with the libs provided by fpcupdeluxe. So, your sqlite3 is not compatible with the other libraries.
If you feel lucky, you might try a tool that will allow you to use the libraries from your own target system. https://github.com/LongDirtyAnimAlf/fpcupdeluxe/tree/master/fpcuptools/libraryscanner
Compile the libraryscanner on your target system. Run the command line version. It will create a directory with all libraries needed from your target system.
Just a question: this seems a bit long winded, am I doing it correctly?
Version of
fpcupdeluxe-x86_64-linux
:Compiling to native works correctly:
Cross compiling to linux-armhf (for Raspberry Pi):
Ahh, ok, I need the `sqlite3 library files for armhf:
Hmm, do I need
GLIBC_2.28
? OK, it is at https://packages.debian.org/buster/libc6File successfully built - yay! But were my steps necessary or is there an easier method?
The text was updated successfully, but these errors were encountered: