[GCC] Crosscompiler output plain tekst

Pagina: 1
Acties:

  • styno
  • Registratie: Juni 2001
  • Laatst online: 03-02 23:21

styno

Koffie? Hmmm, ja, lekkerrr

Topicstarter
Voor een embedded device met een ARM processor (zie sig.) heb ik onder Debian 3.1 stable een crosscompiler gemaakt met behulp van Crosstool (www.kegel.com/crosstool).

Device Newisys NA-1400:
- Kernel 2.6.10 (met device specifieke patches)
- glibc 2.2.6

Crosscompiler:
- gcc 3.4.5
- glibc 2.2.5

Het probleem wat ik nu met deze cross compilerende gcc compiler heb zal best simpel op te lossen zijn, maar ondanks alle documentatie op gnu.org kom ik er niet uit. Dus hier komt het:

Ik probeer programma's voor de NA-1400 te compileren door de crosscompiler als volgt aan te roepen:
# arm-unknown-linux-gnu-gcc hello-world.c -o hello-world


Waarbij dit de listing is van hello-world.c:
C:
1
2
3
4
5
6
7
#include <stdio.h>

int main(void)
{
    printf("Hello world\n");
    return 0;
}

Als ik hierna het volgende commando geef:
# file hello-world

dan krijg ik als reaktie:
hello-world: ASCII C program text

Dit in tegenstelling tot de verwachtte:
hello-world: ELF 32-bit executable, ARM ..... enz.


De output van de compiler is nu een enorm lang -leesbaar- bestand met verwijzingen naar allerlei headerfiles in de crosscompiler directories en helemaal onderaan kom ik de hello-world.c source weer tegen.

Iemand een idee hoe ik gcc zover kan krijgen om wel een executable te bouwen?

Climatechange is a super-wicked problem, but:
"The stone age came to an end not for lack of stones. And the oil age will come to an end not for lack of oil." -- Sheikh Yamani, Saudi oil minister
8xLG Neon MonoX 290Wp SMA SB2100TL / MY SR '22


  • igmar
  • Registratie: April 2000
  • Laatst online: 31-01 23:50

igmar

ISO20022

Je weet zeker dat je geen cpp uitvoert ? De uitvoer is namelijk hetgeen de preprocessor uitspuugt, en dat krijg je normaliter alleen als je gcc -E draait, of cpp.

  • styno
  • Registratie: Juni 2001
  • Laatst online: 03-02 23:21

styno

Koffie? Hmmm, ja, lekkerrr

Topicstarter
igmar schreef op vrijdag 18 augustus 2006 @ 10:28:Je weet zeker dat je geen cpp uitvoert ? De uitvoer is namelijk hetgeen de preprocessor uitspuugt, en dat krijg je normaliter alleen als je gcc -E draait, of cpp.
Je hebt gelijk dat het resultaat van het commando de preprocessor output is. Een collega bevestigde dat net ook. Dat verklaart ook waarom commandline opties als '-c' of '-E' de error '-c is not a valid preprocessor option' geeft. Al snap ik niet wat de implicaties hiervan zijn.

Het programma dat ik aanroep heet 'arm-unknown-linux-gnu-gcc' dus dat lijkt me wel de juiste. Ik begrijp dat gcc intern allerlei andere tools aanroept. Wellicht dat er iets met environment variabelen ofzo niet in orde is?

Climatechange is a super-wicked problem, but:
"The stone age came to an end not for lack of stones. And the oil age will come to an end not for lack of oil." -- Sheikh Yamani, Saudi oil minister
8xLG Neon MonoX 290Wp SMA SB2100TL / MY SR '22


  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

http://www.gentoo.org/doc/en/cross-compiling-distcc.xml

hier staat een cross-compiler uitgelegd voor gentoo. Zou ook voor deb op moeten gaan :)
wel is dit voor distcc, maar dat is niet zo relevant.

Zaram module kopen voor je glasvezelaansluiting?


  • Sappie
  • Registratie: September 2000
  • Laatst online: 18:55

Sappie

De Parasitaire Capaciteit!

Wellicht wijst 'arm-unknown-linux-gnu-gcc' (aangenomen dat crosstool er een symlink van maakt) naar naar het verkeerde programma (en dus cpp). Probeer daarvoor in de plaats eens:
code:
1
/$PATH_TO_CROSSCOMPILER/arm-unknown-linux-gnu/bin/gcc

T zou iig een vage fout zijn.. lijkt me verder niet iets met bepaalde environment variabelen te maken te hebben.

Specs | Audioscrobbler