2009-12-03 4 views
0

J'ai un MacBook Pro avec un processeur Intel Core 2 Duo 64 bits, et j'utilise gcc (i686-apple-darwin9-gcc-4.0.1) pour compiler des exécutables que je peux bien courir sur ma propre machine. Récemment, quelqu'un a essayé d'exécuter mon application sur un PowerBook G4 et a eu une erreur 'Bad CPU type in executable', ce qui est dû au fait que leur CPU est PPC plutôt qu'Intel (et peut-être 32 bits non 64 bits)Compilation pour les processeurs Intel et PPC sous OSX

Est-il possible pour moi de produire des binaires qui fonctionneront sur toutes les architectures Mac en utilisant gcc, et si oui quelles sont les options que j'utilise?

Répondre

2

Vous devez regarder dans « Universal Binaries » c'est le nom donné à un fichier application qui fonctionne, sans recompilation dynamique, sur les deux architectures ppc et i386. Comme vous le savez, les fichiers .app (Mac Executables) sont en fait des archives qui contiennent, en leur sein, l'application binaire actuelle. Ceux-ci peuvent être partitionnés de telle sorte que les binaires i386 et ppc sont contenus.

1

Pour vous éviter, ainsi qu'à vos futurs utilisateurs, des maux de tête, vous devriez vous prendre en main et mettre en place votre projet dans le Xcode d'Apple. Si vous suivez les valeurs par défaut, Xcode peut prendre soin de tous les détails de la construction pour plusieurs architectures, comme l'utilisation des bons indicateurs -arch pour gcc, en utilisant les bonnes bibliothèques SDK, la compatibilité avec les versions précédentes d'OS X, etc.

Questions connexes