2014-11-01 14 views

Odpowiedz

23

nie jestem całkowicie pewien:

  • EABI oznacza kompilacji kodu, który będzie działał na nagim ramieniu metalowy rdzeń.
  • gnueabi oznacza kompilacji kodu dla Linux

dla części gnueabi/gnueabi-HF, znalazłem odpowiedź here.

gcc-arm-linux-gnueabi to pakiet cross-toolchain dla architektury armel. Ten toolchain oznacza EABI generowany przez opcje gcc -mfloat-abi = soft lub -mfloat-abi = softfp.

gcc-arm-linux-gnueabihf to pakiet cross-toolchain dla architektury armhf. Ten łańcuch narzędzi implikuje EABI wygenerowany przez opcję gcc -mfloat-abi = hard.

+2

Patrz także: https://wiki.linaro.org/WorkingGroups/ToolChain/FAQ#What_is_the_differences_between_.2BIBw-arm-none-eabi-.2BIB0_and_.2BIBw-arm-linux-gnueabihf.2BIB0.3F_Can_I_use_.2BIBw -arm-linux-gnueabihf.2BIB0_tool_chain_in_bare-metal_environment.3F_How_do_you_know_which_toolchain_binary_to_use_where.3F * Bezwarunkowe ABI (eabi) przyjmie inną bibliotekę C (newlib na przykład, lub nawet nie ma biblioteki C) do Linux ABI (gnueabi, która zakłada glibc). Dlatego kompilator może wykonywać różne wywołania funkcji w zależności od tego, co uważa za dostępne poza biblioteką Standard C. * – Lekensteyn

+0

Chociaż widzę, że wyciągnąłeś to z zewnętrznego źródła, użycie "architektury" tutaj jest mylące. Różnica między 'armel' i' armhf' jest zasadniczo różnicą pomiędzy zmiennoprzecinkowym interfejsem a sprzętowym zmiennoprzecinkowym EABI generowanym przez kompilatory. – sherrellbc

+0

Ok @ sherrellbc poleciłbyś przeformułowanie? – Akhneyzar