• 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

ObjC im Terminal compilieren

  • Ersteller Mitglied 7974
  • Erstellt am

Mitglied 7974

Gast
Tag!

Weiß jemand von euch, wie man ObjC im Terminal compiliert? Klingt doof, ist aber so.

Ich probier's immer mit
Code:
gcc -ObjC -o <prog_name> <source>.m

Das funktioniert auch solange, bis ich objektorientiert werden will. Sobald ich dann
Code:
gcc -ObjC -o <prog_name> <source1>.m <source2>.m
eingebe, bekomme ich nur diese Fehlermeldung zurück:
Code:
ld: Undefined symbols:
_objc_msgSend
.objc_class_name_NSObject

Da scheint der Assembler-Code also plötzlich nicht mehr in der Lage zu sein, das NSObject zu finden, welches ich über
Code:
#include <Cocoa/Cocoa.h>
oder
#include <Foundation/Foundation.h>
oder
#include <Foundation/NSObject.h>
einbinde.

Ja, ich habe den Quelltext schon unter XCode ausprobiert und erfolgreich compilieren können. Ich will XCode aber nicht benutzen, weil mir das Terminal lieber ist. Ich mache also wohl irgendwo einen Fehler beim Aufruf von gcc. Wenn jemand was weiß, bitte melden.

Danke!
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Im "Programming in Objective-C" wird es zu Beginn mit -l objc gelehrt. Das führt aber zu statischer Verlinkung soweit ich mich erinnern kann. Ich kann nicht sagen inwiefern Dich das betrifft.

Ich bin ja nur ein Obj-C Noob. :)
Gruß Pepi
 

Mitglied 7974

Gast
Jap, danke! Mit
Code:
-framework Cocoa
läuft der Compiler. Dieser gcc ist echt eine Doktorarbeit wert. ;)
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
gcc ist Teil der Xcode Tools, also der Entwickler Werkzeuge. Die findest Du entweder in einer (meist veralteten) Version auf Deinen Original Installationsmedien, oder (besser) Du lädst die akutelle Version (momentan Xcode Tools 2.4.1) bei der Apple Developer Connection runter. (Eine kostenlose Registrierung ist notwendig.)
Gruß Pepi
 

mod_che

Morgenduft
Registriert
06.03.07
Beiträge
164
gut, ist in Arbeit.
Wie war nochmal der Befehl im bash, um nach allen Modulen mit einer Namenseingabe zu suchen: list -l "*gcc*" oder so?
 

Hobbes_

Gast
find /usr -name "*gcc*"

Beispiel: Sucht Dir beispielsweise das ganze Verzeichnis /usr mitsamt seiner Unterverzeichnisse ab nach Dateien, die im Namen irgendwo gcc enthalten.

Wozu brauchst Du so eine Suche?
psc
 

mod_che

Morgenduft
Registriert
06.03.07
Beiträge
164
localhost:~user$ find /usr -name "*gcc*"
/usr/lib/libgcc_s.1.dylib
/usr/lib/libgcc_s.10.4.dylib
/usr/lib/libgcc_s.10.5.dylib
/usr/lib/libgcc_s_ppc64.1.dylib
/usr/lib/libgcc_s_x86_64.1.dylib
/usr/share/zsh/4.2.3/functions/_gcc
um zu sehen, ob gcc druff ist... ist nicht
 

Hobbes_

Gast
Ach so. Dann steht Dir also einer Installation, wie oben von pepi beschrieben, nichts im Weg :)

Viel Erfolg!

psc
 

mod_che

Morgenduft
Registriert
06.03.07
Beiträge
164
ok, nun folgendes getan:
1) xcode mit meinen nötigen packages installiert
2) gcc wurde nun gefunden
3) also pysqlite-2.3.3 mittels python setup.py install installiert: erfolgreich, habe ich mit import pysqlite2 in python getestet, geht!
4) mit trac initenv neue trac umgebung initialisiert, erfolgreich
5) mit tracd -p8000 /path/project erfolgreich standaloneserver auf localhost installiert, geht.
6) im browser auf diesen localhost:8000 zugegriffen, dann
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/trac/web/main.py", line 387, in dispatch_request
dispatcher.dispatch(req)
File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/trac/web/main.py", line 206, in dispatch
req.hdf = HDFWrapper(loadpaths=chrome.get_all_templates_dirs())
File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/trac/web/clearsilver.py", line 135, in __init__
raise TracError, "ClearSilver not installed (%s)" % e
TracError: ClearSilver not installed (No module named neo_cgi)


also, versuche ich nun Clearsilver nochmals zu installieren.

doch mit
$ ./configure
erscheint:
localhost:~/source/clearsilver-0.9.14 user1$ ./configure
./configure: line 444: ./config.log: Permission denied

und nun?
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Wenn Du den gcc als command suchst, dann wäre wohl which, whereis oder auch locate geeignet.
Gruß Pepi
 

Hobbes_

Gast
Habe selbst noch nicht mit diesem System gearbeitet. Die clearsilvers Homepage sprudelt auch nicht gerade über vor lauter Tips zu einem ergolgreichen install.

Vielleicht hilft Dir folgender Tipp, den ich auf einer Seite fand, indem TRAC auf BSD Unix installiert ist (unserem Darwin ja nah verwandt :) ). Dort wird verlangt, dass dem Script ./configure ein paar Parameter mitgegeben werden (Achtung: Ist nicht ganz die neuste Version des Packages). Vielleicht könnte es an dem liegen? Liegt Deinem Package kein readme mit dabei, das noch ein paar Infos gibt?

externe Website schrieb:
$ tar -xvzf clearsilver-0.10.1.tar.gz
$ cd clearsilver-0.9.6
$ ./configure --with-python=/usr/local/bin/python --with-apache=/usr/local/apache2
$ gmake
$ vi scripts/document.py, change 1st line #!/bin/env python to #!/usr/local/bin/python
$ su root -c 'gmake install'
$ cd python
$ su root -c 'python setup.py install'

Link auf die externe Website.