1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Kurze Starthilfe zu XCode gesucht

Dieses Thema im Forum "OS X-Developer" wurde erstellt von bw1faeh0, 12.02.09.

  1. bw1faeh0

    bw1faeh0 Uelzener Rambour

    Dabei seit:
    06.01.08
    Beiträge:
    368
    Hallo Leute,

    ich benötige mal kurz Hilfe zum Thema 'Programmieren mit XCode':

    Ich habe mir ein Projekt für eine einfache Konsolenanwendung erstellt, meinen Code geschrieben und erfolgreich kompiliert sowie gelinkt.
    Nun kann ich ja über den 'Build&Go'-Button die Anwendung starten. Wenn ich nun jedoch mit dem Terminal in das Verzeichnis navigiere, in dem die ausführbare Datei liegt, kann ich sie nicht einfach so starten, sondern muss ein './' davor setzen:

    Code:
    iMac:Debug Karotte$ ls -l
    total 1240
    -rwxr-xr-x  1 Karotte  staff  631644 12 Feb 19:36 sqlite_test
    iMac:Debug Karotte$ sqlite_test
    -bash: sqlite_test: command not found
    iMac:Debug Karotte$ ./sqlite_test
    Usage: ./sqlite_test DATABASE SQL-STATEMENT
    iMac:Debug Karotte$ 
    Kann mir jemand erklären, warum dies so ist, und was ich dagegen tun kann?

    Danke schonmal!
     
  2. Macropolis

    Macropolis Tokyo Rose

    Dabei seit:
    27.02.08
    Beiträge:
    68
    Dagegen tun kannst Du gar nichts. Die Ursache für das Verhalten liegt in den Unix-Wurzeln von Mac OS X begründet. Wenn ich mich recht erinnere, ist das ein Sicherheitsfeature.
    Stell' Dir vor, jemand schreibt irgendwelchen Schadcode, der dann unter dem Namen eines Systemkommandos (z.B. "ls") abgespeichert wird. Wenn nun jemand sich in diesem Verzeichnis befindet und "ls" eingibt, würde ohne dieses Feature sofort die schädliche Anwendung ausgeführt werden. Um das zu unterbinden, muss man durch das Voransetzen von "./" explizit klar machen, dass man das "ls" aus dem aktuellen Verzeichnis aufrufen möchte und nicht jenes aus /usr/bin.

    HTH,

    Macropolis
     
  3. bw1faeh0

    bw1faeh0 Uelzener Rambour

    Dabei seit:
    06.01.08
    Beiträge:
    368
    Mhh... klingt erstmal plausibel.
    Na gut, muss ich mich damit abfinden. Im Endeffekt soll es eh eine Win32-Anwendung werden, und da kommt am Ende eine Exe bei raus.

    Danke!
     
  4. Jamsven

    Jamsven London Pepping

    Dabei seit:
    21.11.07
    Beiträge:
    2.046
  5. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Dann sollte Dir aber klar sein, dass Du die exe nicht ohne weiteres auf OS X bauen kannst.

    Alex
     
  6. hosja

    hosja Wiltshire

    Dabei seit:
    23.03.07
    Beiträge:
    4.275
    Ohne QT, WxWidgets, GTK und andere Frameworks, sogar gar nicht.
     
  7. bw1faeh0

    bw1faeh0 Uelzener Rambour

    Dabei seit:
    06.01.08
    Beiträge:
    368


    Natürlich ist mir das klar, dass ich keine Exe linken kann. Ich wollte den Quellcode so universell halten, dass er unter Unix wie unter Windows zu kompilieren ist. Jedoch habe ich gemerkt, dass es keine Funktionen zum Einlesen einer Taste und zum auslesen eines Verzeichnisses gibt, die betriebssystemunabhängig sind. So musste ich notgedrungen die virtuelle Maschine bemühen...
     
  8. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    ncurses gibt es doch bestimmt auch für Windows

    Alex
     
  9. hosja

    hosja Wiltshire

    Dabei seit:
    23.03.07
    Beiträge:
    4.275
    Du kannst über defines Compilerweichen bauen. Und dann für beide Betriebssystem mit gcc bauen.
     
  10. bw1faeh0

    bw1faeh0 Uelzener Rambour

    Dabei seit:
    06.01.08
    Beiträge:
    368
    ja, man könnte Compiler-Weichen nutzen, aber das wäre in meinen Augen dann auch zu umständlich... man müsste ganze Funktionen in diese Compilerweichen einbauen... Habe mich jetzt für das Visual Studio entschieden
     
  11. hosja

    hosja Wiltshire

    Dabei seit:
    23.03.07
    Beiträge:
    4.275
    Nur die Sache, für die du das System benötigst müssen Weichen haben. Alles was du selber an Funktionalität machst ist universal. Aber ja nachdem was du anstellen willst, ist es wirklich einfacher nur für ein Platform zu entwickeln.
     

Diese Seite empfehlen