• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Kurze Starthilfe zu XCode gesucht

bw1faeh0

Uelzener Rambour
Registriert
06.01.08
Beiträge
370
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!
 

Macropolis

Tokyo Rose
Registriert
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
 

bw1faeh0

Uelzener Rambour
Registriert
06.01.08
Beiträge
370
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!
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
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.

Dann sollte Dir aber klar sein, dass Du die exe nicht ohne weiteres auf OS X bauen kannst.

Alex
 

hosja

Mutterapfel
Registriert
23.03.07
Beiträge
5.252
Ohne QT, WxWidgets, GTK und andere Frameworks, sogar gar nicht.
 

bw1faeh0

Uelzener Rambour
Registriert
06.01.08
Beiträge
370
Dann sollte Dir aber klar sein, dass Du die exe nicht ohne weiteres auf OS X bauen kannst.


Ohne QT, WxWidgets, GTK und andere Frameworks, sogar gar nicht.


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...
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
ncurses gibt es doch bestimmt auch für Windows

Alex
 

hosja

Mutterapfel
Registriert
23.03.07
Beiträge
5.252
Du kannst über defines Compilerweichen bauen. Und dann für beide Betriebssystem mit gcc bauen.
 

bw1faeh0

Uelzener Rambour
Registriert
06.01.08
Beiträge
370
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
 

hosja

Mutterapfel
Registriert
23.03.07
Beiträge
5.252
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.