Nutzen -mfloat-abi=hard-und -mfpu=vfp/neon Codesourcery Lite 2013.05-24
Machen Verwendung von vfp-oder neon-fügte ich hinzu -mfpu=vfp-und -mfloat-abi=hard zu meinem cross-Kompilation. Das Programm ist eine sehr einfache hellofloat.cpp die dann nicht kompilieren mehr mit der Sourcery CodeBench Lite 2013.05-24.
#include <string>
#include <iostream>
using namespace std;
int main()
{
double val=1.04;
cout << "Hello Float: " << val << endl;
}
Kompilieren-Anleitung:
arm-none-linux-gnueabi-g++ -o armhf-main main.cpp -march=armv7-a -mfloat-abi=hard -mfpu=neon
Ich bin verwirrt, da Codesorcery unterstützen sollte armhf Zusammenstellung?
Fehler:
In file included from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../arm-none-linux-gnueabi/libc/usr/include/features.h:399:0,
from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.3/../../../../arm-none-linux-gnueabi/include/c++/4.7.3/arm-none-linux-gnueabi/bits/os_defines.h:40,
from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.3/../../../../arm-none-linux-gnueabi/include/c++/4.7.3/arm-none-linux-gnueabi/bits/c++config.h:414,
from /home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.3/../../../../arm-none-linux-gnueabi/include/c++/4.7.3/string:40,
from main.cpp:1:
/home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../arm-none-linux-gnueabi/libc/usr/include/gnu/stubs.h:10:29: fatal error: gnu/stubs-hard.h: No such file or directory
compilation terminated.
Compiler
arm-none-linux-gnueabi-g++ -v
Using built-in specs.
COLLECT_GCC=arm-none-linux-gnueabi-g++
COLLECT_LTO_WRAPPER=/home/user/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin/../libexec/gcc/arm-none-linux-gnueabi/4.7.3/lto-wrapper
Target: arm-none-linux-gnueabi
Configured with: /scratch/jbrown/2013.05-arm-linux-release/src/gcc-4.7-2013.05/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --enable-extra-sgxxlite-multilibs --with-arch=armv5te --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{funwind-tables|fno-unwind-tables|mabi=*|ffreestanding|nostdlib:;:-funwind-tables} -D__CS_SOURCERYGXX_MAJ__=2013 -D__CS_SOURCERYGXX_MIN__=5 -D__CS_SOURCERYGXX_REV__=24 %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery CodeBench Lite 2013.05-24' --with-bugurl=https://sourcery.mentor.com/GNUToolchain/--disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/jbrown/2013.05-arm-linux-release/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpfr=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-mpc=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-ppl=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --with-libelf=/scratch/jbrown/2013.05-arm-linux-release/obj/pkg-2013.05-24-arm-none-linux-gnueabi/arm-2013.05-24-arm-none-linux-gnueabi.extras/host-libs-i686-pc-linux-gnu/usr --disable-libgomp --disable-libitm --enable-poison-system-directories --with-build-time-tools=/scratch/jbrown/2013.05-arm-linux-release/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/jbrown/2013.05-arm-linux-release/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-24)
wiki.debian.org/ArmHardFloatPort und wiki.debian.org/ArmHardFloatPort/VfpComparison
Können Sie die Kompilierung mit
Versuchen
Es sei denn du hast die Verlinkung gegen die libstdc++ erbaut mit
sry ich habe kein Zugriff auf das board, bis Montag, ich werde nach dem -v-Ausgang als. softfp funktioniert, da sollte es die gleiche sein, wie mit keine mfloat-abi option
Können Sie die Kompilierung mit
softfp
oder jede andere einfache test-Anwendung? Sieht aus wie ein toolchain Problem.Versuchen
arm-none-linux-gnueabi-g++ -v
und poste die Ausgabe.Es sei denn du hast die Verlinkung gegen die libstdc++ erbaut mit
-mfloat-abi=hard
, Sie verknüpfen zwei inkompatible ABIs. Zerbrochenheit ist zu erwarten.sry ich habe kein Zugriff auf das board, bis Montag, ich werde nach dem -v-Ausgang als. softfp funktioniert, da sollte es die gleiche sein, wie mit keine mfloat-abi option
InformationsquelleAutor eactor | 2013-06-28
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Sourcery CodeBench Lite toolchain funktioniert nicht Unterstützung armhf. Das gilt auch für die Akademische oder Persönliche Ausgaben.
Benötigen Sie zum Kauf der Standard-oder Professional-Editionen zu bekommen.
Alternativ, ich glaube, die cross-compiler-Pakete für Ubuntu unterstützen die Konfiguration, die Sie brauchen (in der Tat nur , Konfiguration).
Wenn Sie nicht mit Ubuntu, dann die pre-built-Linaro toolchains sollte genau das sein, was Sie brauchen. (Der Ubuntu-cross-compiler-Pakete werden/wurden, auch gebaut von Linaro Menschen, wenn auch mit der Debian/Ubuntu-spezifisch deb-build-system.)
In der Tat, ich habe vergessen, dass die ganze Welt nicht mit Ubuntu. Die Linaro-tools sind genau die gleichen, aber weiter verbreitet sind installierbar.
Es ist eine Schande, ARM gestoppt sponsoring der CodeSourcery-tools, aber es ist nicht schwer zu sehen, warum mit Linaro herum.
So wissen Sie möglicherweise, wenn die Xilinx-compiler-Unterstützung armhf? Sie addjust die Codesorcery compiler und fügen Sie ihn auf Ihrer ISE-Suite als arm-xilinx-linux-gnueabi?
Ich glaube, dass die Xilinx-toolchains verwenden Sie die softfp ABI (d.h. Sie sind nicht
armhf
), aber ich kann nicht drauf schwören.InformationsquelleAutor ams