Компиляция С на макос-каталине - PullRequest
0 голосов
/ 27 октября 2019

Я разработал довольно большую программу на Фортране для Windows, которая вызывает некоторые подпрограммы на Си для ввода символов. Я предоставляю make-файл для компиляции этой программы также на различных диалектах Unix и MacOS. Я просто обновил Mac, который я использую для тестирования, до Catalina, и компиляция подпрограммы C не удалась, он не может найти все (для меня) загадочные библиотеки "sys / ioctl.h" "signal.h" и т. Д. Это работало на предыдущемВерсия для MacOS Mojave.

Я (во время использования Mojave) установил gfortran с gcc, и у меня есть флаг компилятора -DBSD, чтобы выбрать некоторые из необходимых системных библиотек Си. У меня есть другие флаги для Linux и Cygwin.

Я сам не пользуюсь Mac, но есть некоторые пользователи моей программы с Mac, поэтому я хочу, чтобы они были довольны. Как мне изменить мой make-файл?

Ответы [ 2 ]

1 голос
/ 03 ноября 2019

Я сталкивался с этим вопросом, исследуя, как можно собрать старую 32-битную игру для Каталины. Я также обнаружил, что Catalina удаляет некоторые из существующих /usr/include структур, которые ожидает GCC, и что необходимо создать несколько символических ссылок, а также скопировать некоторые из всеобъемлющих структур, чтобы изменить заголовок.

Большая часть источника GCC исходит от GNU, поэтому я могу ожидать некоторых несовместимостей, но это может помочь другим, кто сталкивается с этим вопросом: https://solarianprogrammer.com/2019/10/12/compiling-gcc-macos/

Архивная версия (3 ноября 2019 г.):http://web.archive.org/web/20191103040729/https://solarianprogrammer.com/2019/10/12/compiling-gcc-macos/

1 голос
/ 31 октября 2019

Как я узнал из ответов на вопрос "не могу скомпилировать программу на C на Mac ...", Apple явно не заинтересована в том, чтобы на Mac было установлено какое-либо другое программное обеспечение, кроме его собственного. Вместо того, чтобы пытаться понять различные варианты изменения структуры каталогов / usr / include и / usr / local / include для использования GCC, я решил использовать компилятор C, предоставляемый Apple в моем Makefile. Поэтому, просто изменив «gcc» на «cc» и удалив некоторые параметры компилятора, недоступные в компиляторе Apple C. Мне удалось скомпилировать мою программу. Думаю, мне повезло, что у меня всего две небольшие подпрограммы на Си, и попытка скомпилировать что-то более сложное потребовало бы большего понимания MacOS, чем меня интересует.

...