Reputation: 1
I am working with this code i found on github. In order to use the uspi library,the help documentation(USING SECTION) said that i should create a makefile and specify the includes and libraries files there. Because i am new to makefile concept,i first try to manually do that by typing:
arm-linux-gnueabihf-gcc -O0 -DRPI2 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7-a -mtune=cortex-a7 -std=c99 -I./uspi/env/include -I./uspi/include -L./uspi/lib -luspi w.o -o kernel.elf
this errors comes up:
w.o: In function `main':
w.c:(.text+0xc): undefined reference to `USPiEnvInitialize'
w.c:(.text+0x24): undefined reference to `USPiInitialize'
w.c:(.text+0x48): undefined reference to `LogWrite'
w.c:(.text+0x4c): undefined reference to `USPiEnvClose'
w.c:(.text+0x58): undefined reference to `USPiMassStorageDeviceAvailable'
w.c:(.text+0x80): undefined reference to `LogWrite'
w.c:(.text+0x84): undefined reference to `USPiEnvClose'
w.c:(.text+0xb8): undefined reference to `USPiMassStorageDeviceRead'
w.c:(.text+0xdc): undefined reference to `LogWrite'
w.c:(.text+0x108): undefined reference to `LogWrite'
w.c:(.text+0x124): undefined reference to `LogWrite'
w.c:(.text+0x13c): undefined reference to `LogWrite'
w.c:(.text+0x204): undefined reference to `LogWrite'
w.c:(.text+0x23c): undefined reference to `USPiEnvClose'
collect2: error: ld returned 1 exit status
i need the .elf file so i can generate a .img file from it
Upvotes: 0
Views: 1160
Reputation: 213955
This link order:
arm-linux-gnueabihf-gcc ... -luspi w.o -o kernel.elf
is incorrect. Libraries should follow the objects they are referenced from:
arm-linux-gnueabihf-gcc ... w.o -luspi -o kernel.elf
Upvotes: 1