Cross-Kompilierung: GCC ignoriert --sysroot

Ich versuche zu cross-kompilieren von Programmen (derzeit avconv von libav) für Nokia N9 Handy mit arm-linux-gnueabi-gcc von Linux Mint 64-bit-repository. Der compiler, der libc-version ist 2.15 und das Telefon hat libc-2.10.1. Sie haben eine Unverträglichkeit, die Mathematik-Bibliothek, die mir einen segmentation Fault, wenn ich kompilieren und starten Sie das Programm avconv von libav.

Ich brauche zu kompilieren und zu linken, die gegen die älteren libc-version, aber ich habe es nicht geschafft, die --sysroot option zu arbeiten.

Habe ich einen kleinen test-Programm, um zu vermeiden, wiederholt konfigurieren und kompilieren libav.

arm-linux-gnueabi-gcc --sysroot=/opt/CrossCompilation/NokiaN9/ -o output.sysroot hello.c
arm-linux-gnueabi-gcc -o output.nosysroot hello.c

Beide Befehle erzeugen eine identische Ausgabe-Datei. Dies ist, was hello.c aussieht:

#include <stdio.h>
#include <math.h>

int main() {
    printf("Hello, World! Sin = %f\n", sin(0.6451));
}

Das seltsamste daran ist, dass gcc ignoriert völlig die --sysroot option. Wenn ich passieren eine nicht vorhandene Verzeichnis zu sysroot, es produziert immer noch genau der gleiche output binary:

arm-linux-gnueabi-gcc --sysroot=/foo/bar -o output.foobar hello.c

Es gar nicht beschweren über Fehler. Was ist das problem?

  • Führen Sie den compiler mit arm-linux-gnueabi-gcc -v und suchen Sie den Wert von --with-sysroot; dies ist das Verzeichnis der compiler erstellt wurde. Wenn Sie dieses Verzeichnis auf Ihrem Computer (vielleicht mit einem anderen compiler), dann die --sysroot kann nicht funktionieren. Was ist die gcc version?
  • Es gibt keine "--with-sysroot" definiert. gcc version 4.6.3
  • Aber statt 'grep /usr/arm" findet "--mit-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.6.3", "--includedir=/usr/arm-linux-gnueabi/include", "--with-headers=/usr/arm-linux-gnueabi/include" und "--with-libs=/usr/arm-linux-gnueabi/lib".
  • --with-libs bedeutet, dass Ihr gcc kompiliert wird, ohne --sysroot unterstützen.
InformationsquelleAutor trololo | 2013-07-11
Schreibe einen Kommentar