# Problème de compilation avec XCODE



## blackswords (20 Juillet 2011)

Bonjour à tous,

voilà j'ai un soucis de compilation que j'ai avec xcode mais pas en utilisant un Makefile. 

J'essaie de développer une application USB utilisant le protocole HID, j'ai donc pour cela téléchargé HIDAPI qui fonctionne très bien avec les exemples fournis. Un Makefile est fourni avec le projet de test et ça compile sans problèmes et ça marche nickel.

J'ai donc voulu utiliser xcode pour continuer mon projet (interface graphique avec IB oblige) et c'est là que ça se gâte... J'ai ajouter à mon projet les 2 fichiers nécessaires (le .c et le .h), j'inclus le .h et ça me sort 13 erreurs de compilations du type "Undefined symbols". J'arrive pas à trouver la cause de se problème donc j'espère que l'un de vous pourra m'aider.

Voici la sortie de la compilation 


```
[FONT=Verdana][SIZE=2][FONT=&quot]Ld build/Debug/USBHID.app/Contents/MacOS/USBHID normal x86_64[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]cd /Users/blackswords/Documents/Xcode/USBHID[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]setenv MACOSX_DEPLOYMENT_TARGET 10.6[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]/Developer/usr/bin/gcc-4.2 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.6.sdk -L/Users/blackswords/Documents/Xcode/USBHID/build/Debug -F/Users/blackswords/Documents/Xcode/USBHID/build/Debug -filelist /Users/blackswords/Documents/Xcode/USBHID/build/USBHID.build/Debug/USBHID.build/Objects-normal/x86_64/USBHID.LinkFileList -mmacosx-version-min=10.6 -framework Cocoa -o /Users/blackswords/Documents/Xcode/USBHID/build/Debug/USBHID.app/Contents/MacOS/USBHID[/FONT][/SIZE][/FONT]

[FONT=Verdana][SIZE=2][FONT=&quot]Undefined symbols:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDManagerRegisterDeviceRemovalCallback", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_open_path in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDManagerSetDeviceMatching", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _init_hid_manager in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDDeviceClose", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_close in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDDeviceGetReport", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_get_feature_report in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDDeviceOpen", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_open_path in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDManagerCopyDevices", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_enumerate in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_open_path in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDDeviceRegisterInputReportCallback", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_open_path in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDManagerCreate", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _init_hid_manager in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDDeviceGetProperty", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _get_int_property in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _get_string_property in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _get_string_property_utf8 in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDManagerScheduleWithRunLoop", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _init_hid_manager in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDDeviceScheduleWithRunLoop", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_open_path in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _hid_read in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDManagerOpen", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _init_hid_manager in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]  "_IOHIDDeviceSetReport", referenced from:[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]      _set_report in hidapi.o[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot]ld: symbol(s) not found[/FONT][/SIZE][/FONT]
[FONT=Verdana][SIZE=2][FONT=&quot][SIZE=2]collect2: ld returned 1 exit status[/SIZE]
[/FONT][/SIZE][/FONT]
```


et un aperçu de mon projet en pj

la doc de HIDAPI se trouve ici

merci d'avance


----------



## Nyx0uf (20 Juillet 2011)

Un problème d'édition des liens. Vu la tête des fonctions c'est du IOKit, donc j'en conclu que t'as pas linker IOKit.framework dans ton projet.


----------



## blackswords (20 Juillet 2011)

par linker tu entends inclure? faire un #import <IOKit/quelquechose.h> ?

(je ne suis pas chez moi là donc je ne peux pas essayer)


----------



## Nyx0uf (20 Juillet 2011)

heu comment on peut coder un truc qui utilise l'USB quand on connait pas les termes de base, réellement ..?

Xcode 4 : Build phases -> Link Binary with libraries

Xcode 3 j'ai oublié je l'ai plus.


----------



## blackswords (20 Juillet 2011)

désolé mais à la base je programme plus sur micro contrôleur que sur ordinateur et la gestion des librairies est bien plus simple (un simple include). 

Je tiens à préciser que ma liaison USB est opérationnelle donc je suis pas un débutant en programmation, c'est que quand on apprend seul il est difficile de bien tout maitriser mais je te remercie de ton aide. Je testerai ça d'ici une ou deux heures

[EDIT] Le test est OK, tout marche nickel merci


----------

