2017-06-19 21 views
0

私はgithubで見つけたcodeと一緒に作業しています。 uspiライブラリを使用するために、ヘルプドキュメント(USING SECTION)は、私がmakefileを作成し、インクルードファイルとライブラリファイルを指定する必要があると言いました。 私はコンセプトをメークファイルに新しいですので、私は最初に手動で入力していることをやろう:私は生成することができますので、私はで.elfファイルが必要アームgccリンカー定義されていない参照

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 

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 

このエラーがアップします。それからのimgファイル

+0

そして、 'w.o'の後に' -luspi'を追加すると? (あなたは、LogWriteのように自分自身でuspios.hで宣言された関数を実装する必要があることに注意してください。) – nos

+0

私の友人は、同じエラー – sami

+1

私はあなたを信じていません。まだ未定義のリファレンスが取得されている場合は、 USPiEnvClose、何か別のものが間違っていて、私たちは何の情報も持っていません。ライブラリ自体は適切にビルドされていますか(実装するまでLogWrite()への未定義の参照を取得します) – nos

答えて

1

このリンク順:

arm-linux-gnueabihf-gcc ... -luspi w.o -o kernel.elf 

が正しくありません。

arm-linux-gnueabihf-gcc ... w.o -luspi -o kernel.elf 

Explanation:図書館はどこから参照されているオブジェクトに従ってください。

関連する問題