Cross compiling linux x86_64 to linux arm
Joakim
dlang at joakim.fea.st
Tue Apr 10 00:23:53 UTC 2018
On Monday, 9 April 2018 at 22:30:20 UTC, user wrote:
> I created runtime and phobos lib for arm as described here:
> https://wiki.dlang.org/Building_LDC_runtime_libraries
>
> This command ran and created the libs successfully:
> CC=arm-linux-gnueabihf-gcc ldc-build-runtime --ninja
> --dFlags="-w;-mtriple=arm-linux-gnueabihf"
> --targetSystem="Linux;UNIX"
>
>
> Now I am confused how to use these files to cross compile my
> application. I tried:
>
> ldc2 -mtriple=arm-linux-gnueabihf lib/libdruntime-ldc.a
> lib/libphobos2-ldc.a app.d
>
> /usr/bin/ld: app.o: Relocations in generic ELF (EM: 40)
> (above line repeated several times)
> /usr/bin/ld: app.o: Relocations in generic ELF (EM: 40)
> app.o: error adding symbols: File in wrong format
> collect2: error: ld returned 1 exit status
> Error: /usr/bin/gcc failed with status: 1
>
> It failed with above error, any help is appreciated.
You need to use the C cross-compliler and the linker it prefers
in order for linking to work. See this wiki page for examples:
https://wiki.dlang.org/Programming_in_D_tutorial_on_Embedded_Linux_ARM_devices
You can also set CC to the C cross-compiler and pass many linker
options from the command-line if you want:
https://wiki.dlang.org/Build_D_for_Android#Cross-compilation_3
More information about the digitalmars-d-ldc
mailing list