2016-07-18 6 views
-2

benutzen soll, um notgedrungen-jam Build-System, die Compiler (gcc) Ich versuche, "Hallo Welt - Projekt" zu machenWie erklären sie

  • Jam (notgedrungen) bauen System
  • C++
  • mit
  • Linux
  • Arm-poky-linux-gnueabi-gcc compiller

hellowor ld-perforce-jam.cpp

#include <stdio.h> 

int main(int args, char* argv[]) 
{ 

    printf("\n\n\nHello World from HELLOWORLD-PERFORCE-JAM!!!\n\n\n\n"); 
    return 0; 
} 

Jamfile

Echo $(CC) ; 
Main helloworld-perforce-jam : helloworld-perforce-jam.cpp ; 

Es sind keine Blocker, wenn ich Arm-poky-linux-gnueabi-gcc direkt ohne Jam-Build-System verwenden wie:

[email protected]:$ /home/user/full_path/arm-poky-linux-gnueabi-gcc helloworld-perforce-jam.cpp 

Es ist eine ausführbare Datei für ARM-Architektur erstellt.

Es sind keine Blocker, wenn ich Standard-gcc (definiert durch Jam) verwenden, zB:

[email protected]:$ jam 
cc 
...found 66 target(s)... 
...updating 1 target(s)... 
Link helloworld-perforce-jam 
Chmod1 helloworld-perforce-jam 
...updated 1 target(s)... 

Es ist eine ausführbare Datei für !!! x86 architektur !!! wird erstellt.

Aber die Idee ist, benutzerdefinierte GCC-Compiler zu verwenden (/ home/user/full_path/arm-poky-linux-gnueabi-gcc). Und das ist ein blocker, ich weiß nicht, wie ...

Ich habe versucht mit den Parametern von Marmelade ausführbaren wie folgt zu spielen:

[email protected]:$ jam -s CC=/home/user/full_path/arm-poky-linux-gnueabi-gcc 
/home/user/full_path/arm-poky-linux-gnueabi-gcc 
...found 66 target(s)... 
...updating 2 target(s)... 
C++ helloworld-perforce-jam.o 
Link helloworld-perforce-jam 
helloworld-perforce-jam.o: file not recognized: File format not recognized 
collect2: error: ld returned 1 exit status 

/home/ygyerts/TOOLING/TeamCity/TeamCity-9.1.7/buildAgent/work/e58af29ade3fd40c/fsl-community-bsp/build/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc -o helloworld-perforce-jam helloworld-perforce-jam.o 

...failed Link helloworld-perforce-jam ... 
...failed updating 1 target(s)... 
...updated 1 target(s)... 

Bitte helfen Sie mir zu verstehen, wie alle erforderliche Umgebung zu setzen zu bauen Hello World mit Arm-linux Architektur, nicht mit x86_64-linux ...

Antwort

0

ich glaube, das Problem ist, dass Sie den Pfad zu den C-Compiler festgelegt haben, aber die C++ Compiler (das ist in der Regel auch der Linker)

Versuchen: jam -sCC=/home/user/full_path/arm-poky-linux-gnueabi-gcc -sC++=/home/user/full_path/arm-poky-linux-gnueabi-gcc

Sie können auch die "-dx" Debug-Flag hinzufügen, die Ihnen zeigt, welche Befehle Jam tatsächlich ausgeführt wird.

Wenn Sie mutig fühlen, überprüfen Sie die Perforce Jamrules aus (es gibt eine Regel SetCommonCompiler benannt, die Setup-Cross-Compiler hilft): https://swarm.workshop.perforce.com/projects/perforce_software-p4/files/2016-1/Jamrules

Es gibt Konfigurationen dort auf einer Vielzahl von Plattformen für den Aufbau, mit die entsprechenden Compiler-Flags, aber es ist nichts für schwache Nerven.

+0

Vielen Dank Mathe funktioniert es mit den folgenden Befehlen: 'Export PATH ="/home/ygyerts/TOOLING/TeamCity/TeamCity-9.1.7/buildAgent/work/e58af29ade3fd40c/fsl-community-bsp/build/tmp/sysroots/x86_64-linux/usr/bin/arm-poky-linux-gnuabi: $ PATH "' \t 'jam -sCC =" arm -poky-linux-gnueabi-gcc -mfloat-abi = schwer "-sC++ =" arm-poky-linux-gnuabi-gcc -mfloat-abi = schwer "' –

Verwandte Themen