Portage d'un projet Windows

Le
Patrice Goetghebeur
j'ai un projet Windows en C/C++ (Borland) que je voudrai porter sur mac.

A priori, je pense que cela est faisable car le programme ne semble pas
utiliser de fonctions cruciales de windows.

Mais le projet contient des librairies dynamiques (DLL) a compiler
séparément.
Comment porter ces librairies sous xcode? faut-il importer leur code
dans le projet ou peut-on refaire des librairies semblables avec xcode ?

les indications et conseils sont les bienvenus.
merci.
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Schmurtz
Le #417088
Patrice Goetghebeur wrote:

j'ai un projet Windows en C/C++ (Borland) que je voudrai porter sur mac.

A priori, je pense que cela est faisable car le programme ne semble pas
utiliser de fonctions cruciales de windows.


J'espère pour toiŠ

Mais le projet contient des librairies dynamiques (DLL) a compiler
séparément.
Comment porter ces librairies sous xcode? faut-il importer leur code
dans le projet ou peut-on refaire des librairies semblables avec xcode ?


Oui, tu peux, il suffit de créer un nouveau projet de type "BSD Dynamic
Library" ou "BSD static library".

Par ailleurs, je te conseille de compiler directement les bibliothèques
avec le programme lui même (sauf si tu penses en avoir besoin pour
d'autres programmes) sans créer de bibliothèque. Ça revient un peu au
même que d'utiliser une bibliothèque statique : le code de la
bibilothèque est inclu dans l'exécutable, se qui le rend plus autonome
et donc plus pratique à diffuser et à installer.

les indications et conseils sont les bienvenus.
merci.


de rien.

--
Schmurtz

pmanet
Le #417087
Schmurtz
Ça revient un peu au
même que d'utiliser une bibliothèque statique : le code de la
bibilothèque est inclu dans l'exécutable, se qui le rend plus autonome
et donc plus pratique à diffuser et à installer.


c'est meme hautement recommandable... je ne comprends pas cette manie de
mettre des bib externe, ce qui est le plus sur moyen de rendre les
choses ingerables au bout de 2-3 versions...
--
Philippe Manet


Sebosac
Le #416893
bonsoir
je n'ai encore jamais utilisé les blibrairie, mais il me semble que une
fois compiler pour un PC, la librairie n'est plus utilisable que sur ce
type de machine, acause du code executable quelle contienne, qui est je
vous le rapel en Intel et sur mac on travaille en RISC, et de prime
reste a sasvoir si le code st portable via les librairie.


non le mieux serai d'apres moi d'avoir sous la main les codes sources de
ces librairies et de les retouché un peu dans le codes sources et de
recompilé le tout en Mac.


et aprés seulement tu pourra compler et ainsi porter ton application sur
MacOS


un autre avis peu étre ?

je ne connais pas xCode comment il réagit, mais il fait tout cela tout
seul alors la chapeau !!


à Bientot.


manet wrote:
Schmurtz

Ça revient un peu au
même que d'utiliser une bibliothèque statique : le code de la
bibilothèque est inclu dans l'exécutable, se qui le rend plus autonome
et donc plus pratique à diffuser et à installer.



c'est meme hautement recommandable... je ne comprends pas cette manie de
mettre des bib externe, ce qui est le plus sur moyen de rendre les
choses ingerables au bout de 2-3 versions...



Hubert Figuiere
Le #416892

c'est meme hautement recommandable... je ne comprends pas cette manie de
mettre des bib externe, ce qui est le plus sur moyen de rendre les
choses ingerables au bout de 2-3 versions...


Cette manie est bien. Sous UNIX on sait gérer les version de
bibliothèques contrairement à Windows. Et les Frameworks de MacOS X
aussi le supportent.
Le problème c'est que MacOS X n'a toujours pas de gestion de packages
digne de ce nom pour gérer les-dites bibliothèques correctement.


Hub
--
GPG fingerprint: 6C44 DB3E 0BF3 EAF5 B433 239A 5FEE 05E6 A56E 15A3

Schmurtz
Le #416889
Sebosac wrote:

je n'ai encore jamais utilisé les blibrairie, mais il me semble que une
fois compiler pour un PC, la librairie n'est plus utilisable que sur ce
type de machine, acause du code executable quelle contienne, qui est je
vous le rapel en Intel et sur mac on travaille en RISC, et de prime
reste a sasvoir si le code st portable via les librairie.


Tu fais un petit mélange. C'est bien à cause de la compilation en
langage machine qu'un exécutable ne peut pas tourner sur processeur
Intel s'il a était compilé pour PowerPC : il faut donc absolument aussi
recompiler les bibliothèques.

Mais le RISC n'a rien avoir la dedans : la dénomination RISC (Reduce
Instruction Set C????) n'est que le nom d'une stratégie de conception du
processeur, par opposition au CISC (Complex Instruction Set), qui
consiste à limiter le nombre d'instructions afin de n'avoir que des
instructions qui effectue des opérations élémentaire. Les processeurs
Intel actuel peuvent être considérer comme des processeurs RISC (même si
il reste tout une gestion de compatibilité avec les instructions des
vieux i386, en CISC).

Le problème d'incompatibilité ne vient que du fait que le jeu
d'instructions du processeur n'est pas le même sur des PowerPC ou des
Pentium qui eux sont compatibles avec les processeurs d'AMD (parque
partageant les mêmes instructions).

non le mieux serai d'apres moi d'avoir sous la main les codes sources de
ces librairies et de les retouché un peu dans le codes sources et de
recompilé le tout en Mac.


Il *faut* avoir le code source de ces bibliothèques, ou alors une
version compilé pour mac.

--
Schmurtz

pmanet
Le #419396
Hubert Figuiere
Cette manie est bien.


non

Sous UNIX on sait gérer les version de
bibliothèques contrairement à Windows.


ce n'est pas une raison ; d'abord, tu fais comme si tous les
programmeurs faisaient leur métier correctement, ce qui n'est absolument
pas garanti ; autant donc limiter la casse en inculquant des principes
robustes : pas de librairie en dehors de l'appli. Sous OSX, on a vu des
tas de machins qui allaient déposer des librairies a des endroits
variés, une fois en root, une fois chez le user, etc...

avoir une application fragmentée en 25 000 fichiers répartis dans tout
le système est une source d'ennui potentielle, et la loi de la tartine
de confiture fait que ces ennuis finissent toujours par arriver.

et comme ça n'a aucun interet tangible, il faut éviter. Objectivement,
la place disque n'est plus un problème, alors chaque dev incorpore ses
librairies dans son appli au moment où il compile et on est sur que tout
reste compatible jusqu'à la prochaine mise à jour.

--
Philippe Manet


Publicité
Poster une réponse
Anonyme