Как я могу компилировать 64-битные программы Mac с помощью Free Pascal?

У меня есть библиотека x86_64 на моем Mac, скомпилированная GCC, и я хочу связать ее с кодом Pascal, скомпилированным с Free Pascal 2.4. Какие параметры я даю fpc, чтобы он генерировал 64-битный код? Без каких-либо опций я получаю только 32-битные файлы .o.

Я использую загрузку fpc-2.4.0.intel-macosx.dmg с SourceForge, но когда я запускаю fpc -i, единственной целевой платформой Macintosh, которую он перечисляет, является «Darwin for i386», хотя версия 2.4 в примечаниях к выпуску говорится, что он может быть нацелен на «64-битную Mac OS X (x86_64 / ppc64)».


person Rob Kennedy    schedule 08.03.2010    source источник


Ответы (2)


Согласно Джонасу Маэбе на fpc-pascal список рассылки, есть два варианта:

  • Запустите fpc с параметром -Px86_64. (Параметр -P, похоже, еще не задокументирован.)
  • Запускайте ppcx64 напрямую вместо fpc. (Без каких-либо параметров вместо этого fpc запускает ppc386.)

Оба работали на меня.

person Rob Kennedy    schedule 12.03.2010
comment
Немного поздно, но: -P задокументирован в buildfaq stack.nl/~marcov/buildfaq .pdf обратите внимание, что это параметр fpc, а не параметр ppc ‹arch›. - person Marco van de Voort; 13.11.2010
comment
Есть несколько вещей, противоречащих этому документу, @Marco. Одна, по данным Google, только две страницы в мире ссылаются на нее; ваш комментарий составляет 3. Во-вторых, он размещен на вашем личном сайте, а не на freepascal.org. В-третьих, это PDF, а не HTML, удобный для Интернета. Четыре, несмотря на название, это не совсем формат FAQ. В-пятых, у любого, кто не компилирует сам FPC (например, у меня), вообще не будет причин его читать. И шестой, он упоминает -P, но не документирует это. Чтобы действительно быть задокументированным, fpc -h и §5.1 руководства пользователя (особенно §5.1.4) должны сказать, что -P существует и что он делает. - person Rob Kennedy; 13.11.2010
comment
1. ссылка на него находится на странице с дополнительной информацией на сайте FPC. 2. Верно, но это в основном потому, что это выходит за рамки выпусков 3. stack .nl / ~ marcov / buildfaq 4. Прочтите вступление, оно выросло из документа с часто задаваемыми вопросами. 5. Это единственный документ, полностью документирующий кросс-компиляцию, который считается сложной темой (еще раз прочтите введение в часто задаваемые вопросы). Я говорю тебе, как есть, а не как должно быть 6а. fpc -h показывает фактическую справку компилятора и не имеет собственной справки. 6б. было бы неплохо, но, опять же, именно этого вы и хотели бы, а не ват. - person Marco van de Voort; 13.11.2010

Используйте 1_.

На самом деле в документации GNU Pascal даже не говорится о его поддержке. в Mac OS X. FreePascal, с другой стороны, работает на всех вариантах Mac OS X (Intel и PPC , 32 и 64 бит).

person F'x    schedule 10.03.2010
comment
Хотя fpc не говорит, что не распознает эту опцию (даже если она недокументирована), она также не влияет на вывод. Создаваемые им файлы .o по-прежнему являются 32-битными. Могу ли я каким-то образом создать у вас впечатление, что я ищу возможность передать GCC? Я не. У меня уже есть 64-битный объектный код из GCC. Я пытаюсь связать его с кодом, скомпилированным Free Pascal, но для этого мне нужен Free Pascal для создания 64-битных объектных файлов. GNU Pascal даже не упоминается, поэтому не имеет значения, поддерживается ли он на Macintosh. - person Rob Kennedy; 10.03.2010