0

arm gcc コンパイラーを使用して、Eclipse でクロスコンパイルしようとしています。projrct のプロパティに移動し、c/c++ コンパイル オプションを設定し、フラグを -mfloat-abi=hard に設定します。ビルド中に次の例外がスローされます。

**** Build of configuration Debug for project HelloWorld ****

make all 
Building file: ../src/HelloWorld.c
Invoking: GCC C Compiler
arm-linux-gnueabi-gcc -I/usr/arm-linux-gnueabi/include -O0 -g3 -Wall -mfloat-abi=hard -c -fmessage-length=0 -MMD -MP -MF"src/HelloWorld.d" -MT"src/HelloWorld.d" -o "src/HelloWorld.o" "../src/HelloWorld.c"
Finished building: ../src/HelloWorld.c

Building target: HelloWorld
Invoking: GCC C Linker
arm-linux-gnueabi-gcc -L/usr/arm-linux-gnueabi/lib -mfloat-abi=hard -o "HelloWorld"  ./src/HelloWorld.o   
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: error: ./src/HelloWorld.o uses VFP register arguments, HelloWorld does not
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld: failed to merge target specific data of file ./src/HelloWorld.o
collect2: ld returned 1 exit status
make: *** [HelloWorld] Error 1

**** Build Finished ****

そのフラグがなくても問題なくビルドされます。しかし、ビーグルボーンで実行するように設定する必要があります。何が間違っているのでしょうか?

-print-multi-lib 使用後の出力

**** Build of configuration Debug for project HelloWorld ****

make all 
Building file: ../src/HelloWorld.c
Invoking: GCC C Compiler
arm-linux-gnueabi-gcc -I/usr/arm-linux-gnueabi/include -O0 -g3 -Wall -mfloat-abi=hard -c -fmessage-length=0  -print-multi-lib -MMD -MP -MF"src/HelloWorld.d" -MT"src/HelloWorld.d" -o "src/HelloWorld.o" "../src/HelloWorld.c"
arm-linux-gnueabi-gcc: error: ./src/HelloWorld.o: No such file or directory
.;
arm-linux-gnueabi-gcc: fatal error: no input files
compilation terminated.
make: *** [HelloWorld] Error 4
.;@mfloat-abi=softfp
hf;@mfloat-abi=hard
Finished building: ../src/HelloWorld.c

Building target: HelloWorld
Invoking: GCC C Linker
arm-linux-gnueabi-gcc -L/usr/arm-linux-gnueabi/lib -mfloat-abi=hard -o "HelloWorld"  ./src/HelloWorld.o   

**** Build Finished ****
4

0 に答える 0