Как я могу остановить clang компилятора Apple, выдающего себя за gcc?

Я пытаюсь установить новейшую версию gforth согласно этой странице

Мой вопрос не о деталях установки, а о том, как предотвратить конфликт clang с компилятором GNU gcc.

В SO есть много вопросов по этой проблеме, некоторые из них я добавил в конце.

У меня есть отчет об ошибке , размещенный здесь , и я тоже попробовал их предложения, но ничего не помогло. Они не могут воспроизвести проблему, потому что gforth нормально компилируется в их системе. Итак, проблема в моем Mac, а не в gforth.

Я надеюсь, что кто-то с глубоким знанием Mac OSX сможет помочь. Спасибо

У меня Сонома 14.2, Интел

Мой gcc находится в этом месте:

/usr/local/bin/gcc-14

Установлены инструменты X-Code и Developers.

РЕДАКТИРОВАТЬ

Это команды, которые я дал:

  1. Клонировать из git и создать каталог gforth

    git clone https://git.savannah.gnu.org/git/gforth/

  2. перейдите в каталог gforth

  3. Запустите скрипт ./install-deps.sh

Сценарий закончился

[...]

Installing /Users/a/gforth/local/bin/ccache-swig-forth
/usr/bin/install -c -d /Users/a/gforth/local/bin
/usr/bin/install -c -m 755 ccache-swig /Users/a/gforth/local/bin/`echo ccache-swig | sed 's&$&-forth&'`
Installation complete
/usr/bin/sudo
(base) a@Ahmet-MacBook-Air gforth 
  1. Беги ./autogen.sh

Это заканчивается

[...]

glibtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am.
configure.ac:1419: warning: The macro 'AC_HEADER_STDC' is obsolete.
configure.ac:1419: You should run autoupdate.
./lib/autoconf/headers.m4:663: AC_HEADER_STDC is expanded from...
configure.ac:1419: the top level
(base) a@Ahmet-MacBook-Air gforth %      
  1. Беги ./configure

Это заканчивается:

*** Config summary: Warnings exist ***

texi2html not found, HTML document won't be built.
swig not found.
Swig without -forth feature, library interfaces will not be generated.
(base) a@Ahmet-MacBook-Air gforth % 
  1. Беги make

Это остановилось здесь

xcode-select: Failed to locate 'm4', requesting installation of command line developer tools.
make: *** [prim.b] Error 72

Появилось сообщение с просьбой скачать инструменты разработчика. (Уже устанавливал несколько раз!)

Папка m4 уже находится в каталоге gforth. Он содержит 8 .m4 файлов

  1. Я скачал инструменты разработчика, снова ввел make и получил вот это

    (база) a@Ahmet-MacBook-Air gforth % make zsh: ошибка синтаксического анализа рядом с `a@Ahmet-MacBook-Air'

  2. Я снова побежал ./configure и получил

    *** Сводка конфигурации: существуют предупреждения ***

    texi2html не найден, HTML-документ не будет создан. глоток не найден. Swig без функции -forth, интерфейсы библиотеки не будут созданы. (база) a@Ahmet-MacBook-Air gforth%

  3. Я снова побежал make и получил это

    (база) a@Ahmet-MacBook-Air gforth % make xcode-select: не удалось найти «m4», запрос на установку инструментов разработчика командной строки. make: *** [prim.b] Ошибка 72 (база) a@Ahmet-MacBook-Air gforth %

  4. Я попробовал последний шаг sudo make install и получил

    (база) a@Ahmet-MacBook-Air gforth % sudo make install Пароль:

    xcode-select: не удалось найти «m4», запрос на установку инструментов разработчика командной строки.

    make: *** [prim.b] Ошибка 72

    (база) a@Ahmet-MacBook-Air gforth %


Вот некоторые из вопросов, которые я пробовал:

Как мне убедиться, что мой компилятор C/C++ по умолчанию — GCC

Как убрать лязг?

Как удалить компилятор на Mac?

https://ports.macports.org/port/gcc12/

Установите GNU GCC на Mac

Мой вопрос о Суперпользователе, прежде чем я понял, что проблема связана с clang:

Пожалуйста, покажите введенную вами команду и сообщение об ошибке.

Richard Barber 08.08.2024 15:20

@RichardBarber Спасибо. Я обновил вопрос с командами и ошибками.

zeynel 08.08.2024 16:45

Похоже, он ищет макропроцессор m4, а не каталог gforth/m4. Кажется, у вас это не установлено.

user2357112 08.08.2024 17:34

@user2357112 user2357112 Похоже, он установлен. Я пытался установить с помощью brew install m4, но там написано, что оно уже установлено и обновлено: Warning: m4 1.4.19 is already installed and up-to-date. И $ which m4 возвращается /usr/bin/m4

zeynel 08.08.2024 17:43

Хм... погуглив, похоже, у вас может быть несколько версий xcode или вы установили версию m4, о которой xcode не знает. Вы бегали xcode-select --install? А что печатает xcode-select --print-path?

user2357112 08.08.2024 17:53

@user2357112 `% xcode-select --print-path: /Library/Developer/CommandLineTools

zeynel 08.08.2024 18:02

@user2357112 % xcode-select --install xcode-select: примечание: инструменты командной строки уже установлены.

zeynel 08.08.2024 18:03

@user2357112 user2357112 Я загружаю XCode из AppStore. Похоже, это займет некоторое время. Я не знаю, поможет ли это.

zeynel 08.08.2024 18:16

Как перейти от всех этих ошибок к «clang, выдающему себя за gcc»??

Richard Barber 08.08.2024 19:21

@RichardBarber В моем отчете об ошибках здесь savannah.gnu.org/bugs/?66066 Мне сказали, что «я предполагаю, что ваш «gcc» на самом деле — это clang, а на каждую компиляцию clang уходит несколько часов», так что я понял это как clang, действующий как gcc.

zeynel 08.08.2024 19:51

@user2357112 user2357112 Повторная установка xcode не помогла. Я получил ту же ошибку: xcode-select: не удалось найти «m4», запрос на установку инструментов разработчика командной строки. make: *** [prim.b] Ошибка 72

zeynel 08.08.2024 19:57

Вы запустили ./configure, не указав ему, какой компилятор использовать. Воспользуйтесь ./configure --help, чтобы узнать, как это сделать.

Richard Barber 08.08.2024 20:26

@RichardBarber Спасибо. Я попробовал ./configure CC=gcc-14.1.0_2, но получил сообщение «ошибка создания исполняемых файлов» при проверке gcc... gcc-14.1.0_2 проверяет, работает ли компилятор C... нет настройки: ошибка: в '/Users/a/gforth/gforth-0.7. 9_20240801': configure: ошибка: компилятор C не может создавать исполняемые файлы. Дополнительные сведения см. в файле config.log.

zeynel 08.08.2024 20:59

@RichardBarber config.log: docs.google.com/document/d/… Внимание: ОГРОМНЫЙ ФАЙЛ

zeynel 08.08.2024 21:11

@RichardBarber Из журнала: Кажется, он нашел gcc: configure: 3475: проверка gcc configure: 3491: найден /usr/bin/gcc configure: 3502: результат: gcc

zeynel 08.08.2024 21:12

Он не принимает ваш gcc. gcc существует в /usr/bin как псевдоним clang. вам нужно будет указать полный путь к желаемому компилятору, например CC=/full/path/to/my/gcc ./configure

Richard Barber 08.08.2024 21:18

@RichardBarber Я попробовал это. Терминал останавливается с этим предупреждением: В файле, включенном в ./engine.c:661: prim:3394:37: предупреждение: передача 'UCell *' (он же 'unsigned long *') в параметр типа 'Cell *' (он же ' long *') преобразует указатели в целочисленные типы с разными знаками [-Wpointer-sign] __atomic_compare_exchange_n(a_addr, &uprev, unew, 0, ^~~~~~

zeynel 08.08.2024 21:29

Мне кажется успех. Теперь, когда нам предоставлена ​​вся необходимая информация, я отказываюсь от своего голосования и даю ответ, теперь, когда он подхватывает ваш компилятор. Теперь вы получаете ошибки кода, которые вы можете отладить в другом месте.

Richard Barber 08.08.2024 21:38
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
18
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы запустили ./configure, не указав ему, какой компилятор использовать. Воспользуйтесь ./configure --help, чтобы узнать, как это сделать.

Конфигурация не выбирает вашу /usr/local версию gcc.

  • Примечание: gcc существует в /usr/bin как псевдоним clang. Вам нужно будет указать полный путь к желаемому компилятору, например CC=/full/path/to/my/gcc ./configure

Другие вопросы по теме