XCode : TinyXML

NSKeyValueCoding

Membre confirmé
30 Août 2011
10
0
Bonjour

Je viens de finir de réaliser une application sous Windows qui utilise la librairie TinyXML (CPP).

Sous windows :

- créer un projet de librairie statique : j’obtiens un .a ( ou autre extension sous max)
- linker le .a au projet principal, le .h en include et tout fonctionne !

Je dois faire la même chose pour Mac donc sous XCode.

Dois-je procéder de la même manière que sous Windows ou il y a une autre solution ?

Si oui, que dois je faire sous Xcode ?

Quand je fais nouveau projet je n'ai pas librairie statique C++

Merci
(ps) je développe en WebObjects d'où mon pseudo.
 
Bonjour

Je pensais que c'était plus propre de créer une lib mais effectivement c'est plus simple d'insérer juste la source dans le projet principale.

J'ai suivi ton conseil :up: Merci

J'ai une autre question sur le développement mac sous Xcode :

En fait mon développement (en C++) n'est pas une application mais une librairie, sous windows j'ai créé une DLL mais sous mac il y a plusieurs type (.Framework, .dylib...)

Ma librairie est sensé être utilisé dans une extension firefox à travers l'api JS-CTYPES :

https://developer.mozilla.org/en/js-ctypes/Using_js-ctypes

Dans leur exemple il y a bien une DLL (ça fonctionne super bien) mais pour le mac c'est un .framework

Quel projet je dois construire dans XCODE pour avoir une libraire .Framework avec du C++ ?

Merci
 
Tu peux faire une STL C++ Library, un .dylib.
Sinon j'ai fait un framework avec des .cpp à l'intérieur, ça n'a pas déranger Xcode plus que cela. Mais j'ai aussi des .mm dans ce projet ce qui a peut être forcé la compilation en Obj-C++.
 
Bonjour

J'ai créé un Framework en utiliser des .mm à la place des .cpp

Ça compile mais Js-ctypes n'arrive pas à l'ouvrir.

Est ce que quelqu'un pourrait partager un projet valide de framework sous XCode 4 avec une simple fonction pour que je puisse essayer ?

Merci
 
Et si de ton côté, tu te créais une petite appli qui exploiterait ton framework. :siffle: Parce que le problème ne vient peut être pas de la façon dont est fait le framework mais de la façon dont tu penses que ton Js-ctypes est sensé l'exploiter.
 
Sous Xcode, j'ai compilé une dylib en 32bit ... ca ne marche pas

Je met le projet en 64bits : ca fonctionne !!

Le problème est que dans ma librairie, je dois utiliser un framework compilé en 32 :(, donc quand je l'ajoute en 32bit ça tourne mais pas en 64 ...

J'ai essayer de créer une dylib sous Code:Blocks, ca fonctionne tout de suite dans Js-ctypes mais je ne sais pas comment ajouter de framework

Du coup j'ai pas encore essayé cocoa en 64
 
Il faut que tous les composants de ton framework ou de ta librairie soient dans la même architecture. Pas de miracle à espérer de ce côté là :D

Un framework est un bundle donc un répertoire. Est-ce que ton Js-ctypes est prévu pour attaquer des librairies et/ou des frameworks ? Ce n'est pas du tout la même chose.
Tu peux créer des librairies dynamiques C++ avec Xcode.
 
Il faut que tous les composants de ton framework ou de ta librairie soient dans la même architecture. Pas de miracle à espérer de ce côté là :D

Un framework est un bundle donc un répertoire. Est-ce que ton Js-ctypes est prévu pour attaquer des librairies et/ou des frameworks ? Ce n'est pas du tout la même chose.
Tu peux créer des librairies dynamiques C++ avec Xcode.

Bonjour

J'avais déjà utilisé des dylib mais ca ne fonctionnait pas parce que Firefox était en 64bit

J'ai réussi à faire fonctionner le tout :

- Firefox lancé en 32bit
- dylib créé avec XCode à partir d'un projet C++ en 32bits avec compilateur GCC
- le .h supprimé et cp renomé en cpp et utilisation de code C à la place du C++ généré automatiquement dans le main et ajout d'un extern C {} autour

Ça fonctionne :)

J'ai des problèmes d'encodage que je n'avais pas sous Windows mais c'est pas grave réglerais ça plus tard