2010-03-08 11 views
8

J'ai une bibliothèque x86_64 sur mon Mac compilée par GCC, et je veux la lier avec du code Pascal compilé avec Free Pascal 2.4. Quelles options dois-je donner à fpc pour qu'il génère du code 64 bits? Sans aucune option, je n'ai que des fichiers .o 32 bits.Comment compiler des programmes Mac 64 bits avec Free Pascal?

J'utilise le fpc-2.4.0.intel-macosx.dmg téléchargement de SourceForge, mais quand je lance fpc -i, la seule cible plate-forme Macintosh il répertorie est « Darwin pour i386, » bien que la version 2.4 notes disent qu'il peut cibler "64-bit Mac OS X (x86_64/ppc64)."

Répondre

10

According to Jonas Maebe sur le fpc-pascal mailing list, il y a deux options:

  • Run fpc avec l'option -Px86_64. (L'option -P ne semble pas encore être documentée.)
  • Exécutez ppcx64 directement au lieu de fpc. (Sans aucune option, fpc exécute ppc386 à la place.)

Les deux ont fonctionné pour moi.

+0

Cool self réponse! –

+0

Un peu en retard, mais: -P est documenté dans le buildfaq http://www.stack.nl/~marcov/buildfaq.pdf note qu'il s'agit d'un paramètre "fpc", pas un paramètre "ppc " –

+0

plusieurs choses vont à l'encontre de ce document, @Marco. Un, selon Google, seulement deux pages dans le monde le lient; votre commentaire fait 3. Deux, il est hébergé sur votre site personnel plutôt que freepascal.org. Troisièmement, il s'agit d'un fichier PDF au lieu d'un code HTML convivial. Quatre, malgré son nom, ce n'est pas vraiment dans le format FAQ. Cinq, quiconque ne compile pas FPC lui-même (comme moi) n'aurait aucune raison de le lire du tout. Et six, il * mentionne * '-P', mais ne le * documente pas. Pour être vraiment documenté, 'fpc -h' et §5.1 du manuel de l'utilisateur (en particulier §5.1.4) ont besoin de dire que' -P' existe et ce qu'il fait. –

0

Utilisez -m64.

En fait, le GNU Pascal documentation ne dit même pas qu'il est pris en charge sur Mac OS X. FreePascal, d'autre part, fonctionne sur toutes les variantes de Mac OS X (Intel et PPC, 32 et 64 bits).

+1

Bien que 'fpc' ne dise pas qu'il ne reconnaît pas cette option (même s'il n'est pas documenté), il n'a également aucun effet sur la sortie. Les fichiers .o qu'il génère sont toujours des fichiers 32 bits. Ai-je en quelque sorte vous donner l'impression que je cherchais une option à donner à GCC? Je ne suis pas. J'ai déjà un code objet 64 bits de GCC. J'essaie de le lier avec du code compilé par Free Pascal, mais pour cela, j'ai besoin de Free Pascal pour générer des fichiers objets 64 bits. GNU Pascal n'entre même pas dans l'image, donc si elle est supportée sur Macintosh n'est pas pertinent. –