I am trying to compiling the javacv in the beaglebone black. During compiling the javacpp-present. It shows the error
sorry, unimplemented: Thumb-1 hard-float VFP ABI
Here is the command I am using for the compile
mvn clean install -DskipTests -Dplatform.name=linux-arm -Dplatform.compiler=arm-linux-gnueabihf-gcc
And the entire message about the error:
[INFO] /usr/bin/arm-linux-gnueabihf-g++-4.8 -I/media/card/javacpp-presets/opencv/cppbuild/linux-arm/include/ -I/usr/lib/jvm/java-7-openjdk-armhf/include -I/usr/lib/jvm/java-7-openjdk-armhf/include/linux /media/card/javacpp-presets/opencv/target/classes/org/bytedeco/javacpp/jniopencv_calib3d.cpp -march=armv5te -Wl,-rpath,$ORIGIN/ -Wall -O3 -fPIC -shared -s -o /media/card/javacpp-presets/opencv/target/classes/org/bytedeco/javacpp/linux-arm/libjniopencv_calib3d.so -L/media/card/javacpp-presets/opencv/cppbuild/linux-arm/lib/ -Wl,-rpath,/media/card/javacpp-presets/opencv/cppbuild/linux-arm/lib/ -lopencv_calib3d -lopencv_features2d -lopencv_ml -lopencv_flann -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core
In file included from /usr/include/stdio.h:934:0,
from /usr/lib/jvm/java-7-openjdk-armhf/include/jni.h:39,
from /media/card/javacpp-presets/opencv/target/classes/org/bytedeco/javacpp/jniopencv_calib3d.cpp:26:
/usr/include/arm-linux-gnueabihf/bits/stdio.h: In function ‘int getchar()’:
/usr/include/arm-linux-gnueabihf/bits/stdio.h:44:14: sorry, unimplemented: Thumb-1 hard-float VFP ABI
getchar (void)
Anyhow, the command about the g++ seems correct, but I have no idea why the error occurs.
Best Answer
You have (I believe) selected the wrong architecture:
-march=armv5te
So it's set to ARMv5TE. But the Beaglebone Black has an AM3358 Cortex-A8 which is based on the ARMv7-A architecture.
It could be that you would have to specify that a hardware floating point unit is available. But I think it should be better to specify the correct architecture.
On the Debian page about the armhf port it says:
So they probably check in the armhf headers, that the selected architecture matches the minimum requirements.