Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

Dieses Thema im Forum "C/C++" wurde erstellt von Foxy, 27.01.2014.

  1. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    Hallo,

    für eine wissenschaftliche Arbeit beschäftige ich mich mit einem Embedded Linux Rechner, auf welchem ich eine meiner C-Datein zum laufen bringen möchte. Dieses möchte ich mithilfe von Telnet und einem FTP Server zu stande bringen, da ich das ganze von meinem Mac machen möchte. Die C-Datei ist in XCode geschrieben und sollte somit Kompiliert sein (entschuldigt wenn ich hier falsch liege ich hatte bisher nur Grundlagen in Informatik). Die Datei habe ich auf meinem Embedded Sytem abgelegt und finde diese auch über Telnet am besagten Ort. Über chmod +x xxxxx.c habe ich die Zugriffsrechte erteilt, nur beim ausführen über ./xxxxx.c erhalte ich folgende Fehlermeldung und kein Resultat. Das Programm läuft unter Xcode ohne Probleme und führt zum gewünschten Ergniss. Entschuldigt bitte diese Frage, nur begrenzen sich meine Unix-Kenntnise eher auf Null und ich verspreche Besserung ?(

    ./main.c: line 1: //: is a directory
    ./main.c: line 2: //: is a directory
    ./main.c: line 3: //: is a directory
    ./main.c: line 4: //: is a directory
    ./main.c: line 5: //: is a directory
    ./main.c: line 6: syntax error near unexpected token `('
    ./main.c: line 6: `// Copyright (c) 2014 xxxxxxxx. All rights reserved.'

    Ps. Es soll zum Beispiel ein einfacher Text wie Hallo Welt ausgegeben werden

    //
    // main.c
    // Hallo Welt
    //
    // Created by xxxx on 23.01.14.
    // Copyright (c) 2014 xxxx. All rights reserved.
    //

    #include <stdio.h>

    int main(int argc, const char * argv[])
    {

    // insert code here...
    printf("Hallo, Welt!\n");
    return 0;
    }

    Vielen Dank für eure Hilfe :))
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. SiS

    SiS Routinier

    Dabei seit:
    12.02.2007
    Beiträge:
    318
    Zustimmungen:
    0
    Ja hier liegst du falsch! Die main.c die du kopiert hast beinhaltet nur den Quelltext und muss noch übersetzt werden. Das musst Du (für gewöhnlich) auch auf dem Linux-System machen, da OSX ein anderes Format für seine Binaries verwendet (und da es sich um ein Embedded-System handelt vermutlich auch eine andere Prozessorarchitektur)

    Kompilieren kannst Du das unter Linux mit folgendem Befehl:
    Code:
    gcc -g -Wall -o helloworld main.c
    (Option -g brauchst Du nur falls du einen Debugger verwenden willst, und -Wall zeigt dir warnings an. -o bestimmt den Programmnamen)
    Danach kannst Du das Programm so ausführen:
    Code:
    ./helloworld
     
  4. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    Super :) Vielen Dank werd ich gleich mal ausprobieren und berichten :D
     
  5. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    Habe das ganze gerade mal durchgespielt und anscheinend fehlt der passende Compiler. Zumindest wird unter gcc -v oder gcc --version nichts gefunden, bzw. gcc -o helloworld main.c kann nicht ausgeführt werden da der Befehl gcc nicht bekannt ist.
     
  6. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    So Du auf dem embeded-System keine Software installieren kannst - meist gibt es für solche "abgekapselten" Systeme Build-Umgebungen, mit denen man auf anderen Systemen entsprechende Binaries erstellen kann - wälz mal die Doku zu dem System.

    Alternativ schau mal, ob Du zu dem konkreten System / Hardware / Architektur einen Cross-Compiler findest...
     
  7. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    So wie ich das sehe schlägt die Dokumentation hier nichts weiter vor. Es wird empfohlen coLinux oder ein Linux basierendes PC System zu verwenden um den nativen GCC Compiler von Linux zu nutzen. Ich habe mich mal versucht, sofern man das ganze überhaupt als Versuch zählen darf, da die Ergebnisse mehr als enttäuschend sind, einen Cross Compiler für die Architektur zu finden... Wie schon erwähnt war es ein voller Misserfolg. Als Board nutze ich das SSV DIL/NetPC Sk29 bzw NetPC/2486 mit folgenden Spezifikationen:


    # DnP/2486 with Vortex86SX- 32bit SoC MCU @ 300MHz,
    # 64;Byte DDR2 SDRAM @133 MHz
    # 1 GByte NAND FLASH Memory

    als Features werden angegeben

    # Syslinux 3.63
    #Linux- Kernel Version 2.6.18.8-dmp-ssv1
    #Debain Etch 4.0 based ext3 rootfs filesystem
    #Java Build 1.60_03-b05
    #GNU bash 3.1.17
    #packing tools (zip,...)

    und vieles mehr...

    Auf welchen Daten muss der gesuchte Compiler nun basieren? Sprich worauf muss ich bei der Suche achten, bzw könntet ihr mir anonsten einen empfehlen der leicht zu implementieren wäre?

    Lg und entschuldigt abermals mein Unwissen
     
  8. #7 karloff, 28.01.2014
    karloff

    karloff Routinier

    Dabei seit:
    09.07.2007
    Beiträge:
    317
    Zustimmungen:
    0
    Ort:
    ~/
    Schau mal ob du das embeded system nicht mit qemu nachbauen kannst, dann müsstest du dort nur nen compiler zum laufen kriegen und könntest quasi 'native' compilieren.
    cross compilen geht natürlich auch, kann aber schnell ein abenteuer für sich werden.
     
  9. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    Qemu hört sich als alternative schonmal sehr interessant an vielen dank schonmal, nur möchte ich es weitgehend ohne zusätzliche Programme lösen können sofern dies möglich ist. Einen Windows Rechner hätte ich zur Not auch zur Verfügung mit coLinux jedoch dachte ich das es vielleicht einzig über das MacOS realisierbar sei ohne größeren Aufwand wo ich mich wohl getäuscht habe, sofern es keinen Cross Compiler gibt den ich laie einfach implementieren kann :hilfe2:
     
  10. SiS

    SiS Routinier

    Dabei seit:
    12.02.2007
    Beiträge:
    318
    Zustimmungen:
    0
    Kannst du auf dem embeded System denn Software installieren? In dem Fall wäre es das einfachste gcc nach zu installieren...
     
  11. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    Hallo,

    so nach Rücksprache mit dem zuständigen Leiter wurde festgelgt das keine zusätzlichen Programme auf dem embedded Installiert werden sollen, sprich es soll auf dem Host compiliert werden. Gibt es einen Compiler der meinen Quellcode aus Xcode in das Binärformat von Linux übersetzt? Oder muss ich zwangsläufig ein virtuelles Betriebssystem einrichten und hierüber compilieren?

    Ps ich hatte noch den Befehl apt-get install gcc gefunden welcher jedoch in massiven Fehlermeldungen unterging auf dem Embedded...
     
  12. SiS

    SiS Routinier

    Dabei seit:
    12.02.2007
    Beiträge:
    318
    Zustimmungen:
    0
    Es gibt wohl crosscompiler für OSX -> Linux...ich hab mich damit zwar noch nicht wirklich beschäftigt, aber was ich so gehört habe dürfte das schon ein wenig Frickelei sein (korrigiert mich wenn es da schöne Wege gibt)...
    Da das von Dir verwendete embedded System wohl x86 kompatibel ist dürfte es denke ich das einfachste sein, zu testen ob das nicht mit Virtualbox und einem beliebigen Linux läuft...
     
  13. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    einen passenden fertigen Cross Compiler zu finden scheint wohl wirklich schwer, einzig habe ich folgenden gefunden, wozu es jedoch leider nur wenig Informationen gibt inwiefern dieser noch Konfiguriert wird.

    http://crossgcc.rts-software.org/doku.php?id=compiling_for_linux

    Hat einer von euch schon Erfahrungen hiermit gemacht? Ansonsten werde ich den Weg über Virtualbox gehen :)
     
  14. #13 bitmuncher, 31.01.2014
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    QEMU gibt's auch über die MacPorts: http://www.macports.org/
    Wenn dein Embedded-System aber sogar apt-get zur Verfügung hat, dann würde ich eher versuchen das zum Laufen zu bekommen und damit einen Compiler zu installieren.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. Foxy

    Foxy Jungspund

    Dabei seit:
    27.01.2014
    Beiträge:
    13
    Zustimmungen:
    0
    Ich habe hier mal die Fehlermeldung angehängt die ich bei apt-get install gcc bzw build-essential erhalte... Für mich sieht es so aus als ob das Board keine Verbindung zum Server aufbauen kann aus welchem Grund auch immer?!

    Ohne Titel 2.png
     
  17. #15 bitmuncher, 31.01.2014
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    Offenbar kann dein System ftp.debian.de nicht erreichen. Hat das System überhaupt Internet-Zugriff?
     
Thema:

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen

Die Seite wird geladen...

Ausführbare C-Datei von Mac OS auf Embedded Linux ausführen - Ähnliche Themen

  1. Neue ausführbare Datei mit Datensätzen aus einer Datei und Variablen erstellen

    Neue ausführbare Datei mit Datensätzen aus einer Datei und Variablen erstellen: Hallo erstmal allesamt. Mein erster Beitrag hier. Ich habe in letzter Zeit eigentlich nur Batch-Scripte, HTML etc. geschrieben und nie shells....
  2. Ausführbare Datei aus icon_switch.c

    Ausführbare Datei aus icon_switch.c: Ich habe da ei Problem mit einer Datei Namens icon_switch.c, ich möchte diese Datei zu einer ausführbaren Anwendung machen. Jedoch bin ich leider...