• 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

libusb und Objective-C?

Westbär

Weißer Winterglockenapfel
Registriert
06.04.07
Beiträge
881
Hallo,
Ich hab vor ein Programm in ObjC zu realisieren, welches ich vorher schon in C geschrieben habe. Da ich mit einem USB Device kommuniziere würde ich gerne libusb benutzen, da es ein einfaches und schönes Interface für das ansprechen von USB Devices ist.

Nun will ich libusb auch in Cocoa/ObjC Code integrieren. Leider bin ich daran gescheitert. Ich konnte es zwar linken (mit linker-flags und gcc-flags im Xcode angepasst) jedoch gab es mir immer andere Referenzierungsfehler.

Gibt es eine ähnliche API für USB in Cocoa oder kann ich libusb mit Cocoa nutzen, wenn ja, wie?
(Ich würde mal libusb + Cocoa bevorzugen).

Ich hoffe man versteht mich,
Gruß
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Ich weiss nicht, was Dein Problem ist. Libusb in Cocoa sollte problemlos funktionieren

Alex
 

TaTonka

Neuer Berner Rosenapfel
Registriert
19.03.06
Beiträge
1.975
Du siehst doch, dass er da einige Referenzierungsprobleme hat. Vllt schreibst du mal, was du gemacht hast, um libusb zu benutzen.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Wenn er nicht sagt, welche Fehler er hat kann ich wenig sagen.

libusb.a (natürlich universal, und selbstverständlich das IOKit.framework) linken, fertig.

Alex
 

Westbär

Weißer Winterglockenapfel
Registriert
06.04.07
Beiträge
881
Ok, also ich hab folgendes gemacht:
- Project > Edit Project Settings > Build > linker-flags > other linker flags > "-L/opt/local/lib -lusb -Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation -Wl,-prebind"

- Project > Edit Project Settings > Build > gcc 4.0 language > other gcc flags > "-lusb -I/opt/local/include"

Danach in den Xcode Preferencen noch /opt/local/include und /opt/local/lib unter "Open Quickly" hinzugefügt.

Nachdem hab ich in meinen AppController.m die usb.h eingebunden und in der ersten IBAction usb_init(); angesprochen. Sollte doch reichen?

Jetzt kommt der Fehler:
attachment.php


// EDIT: Sorry, wegen falschen Attachment

Hab jetz alles erklärt was ich gemacht habe,
Gruß
 

Anhänge

  • Picture 2.png
    Picture 2.png
    19,8 KB · Aufrufe: 522

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Da steht es doch: /opt/local/lib/libusb.dylib IS NOT OF REQUIRED ARCHITECHTURE

Du versuchst also, eine PPC lib in einer x86 App (oder umgekehrt) zu verwenden.

Im übrigen sieht /opt/local nach Fink oder sowas aus. Ich baue meine Sachen ja lieber selbst, Da-Weiss-Man-Was-Man-Hat™ ;)

Alex
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Noch ein Tip: Wenn Du nicht nur für Dich selbst, und nicht nur für andere Entwickler entwickelst, rate ich von der Verwendung von libusb.dylib ab. Zumindest bist 10.4 war das Suchverhalten von OS X für dynamische Libraries notorisch schlecht. Deshalb rate ich Dir, libusb.a statisch zu linken.

Alex
 

Westbär

Weißer Winterglockenapfel
Registriert
06.04.07
Beiträge
881
Ich seh irgendwie gar nicht mehr durch.
libusb hab ich jetz übers Terminal gebacken. Also in Xcode die verlinkungen geändert. Nein, er will noch immer auf /opt/local/... zugreifen. Also nur mehr -I/usr/local/include eingetragen und die libusb.a als Framework genommen und bei Xcode in Linked Frameworks reingehaun. Nein, geht noch immer nicht. Mir ist die PPC Unterstützung ja egal.

Ich arbeite übrigens alleine an dem Programm.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Was ich anbieten kann ist ein beispielprojekt:

Alex
 

Anhänge

  • libusbtest.zip
    94,9 KB · Aufrufe: 142

Westbär

Weißer Winterglockenapfel
Registriert
06.04.07
Beiträge
881
Siehe Attachment :)
 

Anhänge

  • Picture 1.png
    Picture 1.png
    103,1 KB · Aufrufe: 130

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Argh, ja, das ist die verschlimmbesserung von Xcode 3: Dein /usr/local Verzeichnis wird in das SDK kopiert, deshalb versucht er auf die libusb.dylib mit der falschen Arch zuzugreifen.

Entfern die mal. Wo kommt die eigentlich her?

Alex
 

Westbär

Weißer Winterglockenapfel
Registriert
06.04.07
Beiträge
881
Jo, /usr/local/lib wurde in das SDK Verzeichnis gesymlinkt.
Hab nun die Datei gelöscht und siehe da, es funktioniert.

Vielen, Vielen, Vielen Dank an alle und ganz besonders an below :)