xcode und curses

Diskutiere mit über: xcode und curses im Mac OS X Entwickler, Programmierer Forum

  1. Hugoderwolf

    Hugoderwolf Thread Starter MacUser Mitglied

    Beiträge:
    344
    Zustimmungen:
    0
    Registriert seit:
    07.03.2003
    Um ein Programm (C) für ein kleines Mikrocontroller-Projekt zu schreiben, will ich meine I/O-Libraries für Tasten und LC-Display auf dem iBook per curses simulieren. So kann ich das Hauptprogramm bequem am Book schreiben und testen und das dann irgendwann für den Controller zu Kompilieren.
    Daher habe ich also zu Anfang mal die Funktionen meiner LCD-Library genommen und versucht, die für Curses umzubauen. Problem: Curses läuft nicht. Der Build verläuft ohne Fehler und beim ausführen kommt dann die Meldung

    ZeroLink: unknown symbol '_stdscr'

    hugo-sys has exited due to signal 6 (SIGABRT).

    Ich gehe mal davon aus, dass die curses-lib nicht richtig gelinkt wird. Normalerweise würde ich also was entsprechendes ins Makefile schreiben, aber das gibt's bei Xcode nicht. Wo tu ich also den entsprechenden Hinweis hin?
     
  2. blutfink

    blutfink MacUser Mitglied

    Beiträge:
    37
    Zustimmungen:
    0
    Registriert seit:
    04.07.2004
    Ohne, dass ich jetzt eine direkte Lösung hätte...

    Zunächst hast du ein Linking-Problem, dir fehlt eine Bibliothek, in der das Symbol definiert ist.

    Schalte mal ZeroLink aus, dann erhältst du den Fehler nicht erst zur Laufzeit. Dann google mal nach dem Symbol stdscr und suche die Lib, in der es enthalten ist, und binde sie ein.
     
  3. Hugoderwolf

    Hugoderwolf Thread Starter MacUser Mitglied

    Beiträge:
    344
    Zustimmungen:
    0
    Registriert seit:
    07.03.2003
    Ich hab das Gefühl die Lib ist da. Die Manpage von Curses gibt's, die curses.h ist offenbar auch existent, sonst würde es einen Fehler geben. Und das gesuchte Symbel stdscr steht auch nicht im Quellcode, er muss es also irgendwo her haben.

    Was ist denn ZeroLink und wo schalte ich das aus? Wie auch immer, wenn ich von Hand kompiliere muss ich die Option "-lncurses" angeben. Dann wird auch brav kompiliert und das Programm verursacht bei Ausführung einen "Bus Error", was sich aber IMO wahrscheinlich als Programmierfehler meinerseits herausstellen wird. Ergo: Ich muss Xcode irgendwie beibringen, diese Option -lncurses beim Build zu benutzen.
     
  4. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    Registriert seit:
    30.08.2004
    was passiert, wenn du die anwendung im terminal startest?
     
  5. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    Registriert seit:
    30.08.2004
  6. Hugoderwolf

    Hugoderwolf Thread Starter MacUser Mitglied

    Beiträge:
    344
    Zustimmungen:
    0
    Registriert seit:
    07.03.2003
    Es kommt die Gleiche Meldung. Habe jetzt nochmal folgenden Quellcode von einem Tutorial kopiert um Programmierfehler auszuschließen:

    Code:
    #include <curses.h>
    
    int main()
    {
            int c;
            initscr();   /*curses initialisieren*/
            keypad(stdscr,TRUE);
            while((c=getch()) == KEY_DOWN || c==KEY_UP || c==KEY_LEFT || c==KEY_RIGHT)
                      ;
            endwin();
            return 0;
    }
    Wenn ich das im Terminal kompiliere mit:
    gcc -o cursestest main.c -lncurses

    Dann funktioniert das Programm. Wenn ich es mit der Methode aus deinem Link in Xcode Kompiliere habe ich wieder diesen ZeroLink-Fehler. :(
     
  7. Katana

    Katana MacUser Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    Registriert seit:
    30.08.2004
  8. blutfink

    blutfink MacUser Mitglied

    Beiträge:
    37
    Zustimmungen:
    0
    Registriert seit:
    04.07.2004
    Links oben im "Groups & Files"-Panel klickst du doppelt auf dein Projekt (blaues Symbol). Dann kommt deine "Project Info". Dann wählst du den Tab "Styles". In der dann erscheinenden Liste machst du das Häkchen bei ZeroLink weg.

    Dort findet sich auch ein Eintrag namens "Other Linker Flags". Dort trägst du -lncurses ein.
     
  9. Hugoderwolf

    Hugoderwolf Thread Starter MacUser Mitglied

    Beiträge:
    344
    Zustimmungen:
    0
    Registriert seit:
    07.03.2003
    Ah supi danke! Das funzt. Man kann das Proggi zwar nicht von Xcode aus per Build&Run ausführen (Error opening terminal: unknown.) aber vom Terminal aus geht's.
     
Die Seite wird geladen...
Ähnliche Themen - xcode curses Forum Datum
Problem mit First Responder Mac OS X Entwickler, Programmierer 22.11.2016
Mit Xcode an bestehendem Git Hub Repository mitarbeiten Mac OS X Entwickler, Programmierer 09.11.2016
Exception in Persistent Document (missing Document.xib) Mac OS X Entwickler, Programmierer 24.10.2016
Eine Frage zu git: Commit funktioniert nicht mehr Mac OS X Entwickler, Programmierer 19.10.2016
Ich finde dieOption "All Exceptions" nicht mehr ! Mac OS X Entwickler, Programmierer 29.09.2016

Diese Seite empfehlen

Benutzerdefinierte Suche