Я пытаюсь установить новейшую версию gforth
согласно этой странице
Мой вопрос не о деталях установки, а о том, как предотвратить конфликт clang
с компилятором GNU gcc
.
В SO есть много вопросов по этой проблеме, некоторые из них я добавил в конце.
У меня есть отчет об ошибке , размещенный здесь , и я тоже попробовал их предложения, но ничего не помогло. Они не могут воспроизвести проблему, потому что gforth
нормально компилируется в их системе. Итак, проблема в моем Mac, а не в gforth
.
Я надеюсь, что кто-то с глубоким знанием Mac OSX сможет помочь. Спасибо
У меня Сонома 14.2, Интел
Мой gcc находится в этом месте:
/usr/local/bin/gcc-14
Установлены инструменты X-Code и Developers.
РЕДАКТИРОВАТЬ
Это команды, которые я дал:
Клонировать из git
и создать каталог gforth
git clone https://git.savannah.gnu.org/git/gforth/
перейдите в каталог gforth
Запустите скрипт ./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
./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 %
./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 %
make
Это остановилось здесь
xcode-select: Failed to locate 'm4', requesting installation of command line developer tools.
make: *** [prim.b] Error 72
Появилось сообщение с просьбой скачать инструменты разработчика. (Уже устанавливал несколько раз!)
Папка m4
уже находится в каталоге gforth
. Он содержит 8 .m4
файлов
Я скачал инструменты разработчика, снова ввел make
и получил вот это
(база) a@Ahmet-MacBook-Air gforth % make zsh: ошибка синтаксического анализа рядом с `a@Ahmet-MacBook-Air'
Я снова побежал ./configure
и получил
*** Сводка конфигурации: существуют предупреждения ***
texi2html не найден, HTML-документ не будет создан. глоток не найден. Swig без функции -forth, интерфейсы библиотеки не будут созданы. (база) a@Ahmet-MacBook-Air gforth%
Я снова побежал make
и получил это
(база) a@Ahmet-MacBook-Air gforth % make xcode-select: не удалось найти «m4», запрос на установку инструментов разработчика командной строки. make: *** [prim.b] Ошибка 72 (база) a@Ahmet-MacBook-Air gforth %
Я попробовал последний шаг 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/
Мой вопрос о Суперпользователе, прежде чем я понял, что проблема связана с clang
:
@RichardBarber Спасибо. Я обновил вопрос с командами и ошибками.
Похоже, он ищет макропроцессор m4, а не каталог gforth/m4
. Кажется, у вас это не установлено.
@user2357112 user2357112 Похоже, он установлен. Я пытался установить с помощью brew install m4
, но там написано, что оно уже установлено и обновлено: Warning: m4 1.4.19 is already installed and up-to-date.
И $ which m4
возвращается /usr/bin/m4
Хм... погуглив, похоже, у вас может быть несколько версий xcode или вы установили версию m4
, о которой xcode не знает. Вы бегали xcode-select --install
? А что печатает xcode-select --print-path
?
@user2357112 `% xcode-select --print-path: /Library/Developer/CommandLineTools
@user2357112 % xcode-select --install xcode-select: примечание: инструменты командной строки уже установлены.
@user2357112 user2357112 Я загружаю XCode из AppStore. Похоже, это займет некоторое время. Я не знаю, поможет ли это.
Как перейти от всех этих ошибок к «clang, выдающему себя за gcc»??
@RichardBarber В моем отчете об ошибках здесь savannah.gnu.org/bugs/?66066 Мне сказали, что «я предполагаю, что ваш «gcc» на самом деле — это clang, а на каждую компиляцию clang уходит несколько часов», так что я понял это как clang, действующий как gcc.
@user2357112 user2357112 Повторная установка xcode не помогла. Я получил ту же ошибку: xcode-select: не удалось найти «m4», запрос на установку инструментов разработчика командной строки. make: *** [prim.b] Ошибка 72
Вы запустили ./configure
, не указав ему, какой компилятор использовать. Воспользуйтесь ./configure --help
, чтобы узнать, как это сделать.
@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.
@RichardBarber config.log
: docs.google.com/document/d/… Внимание: ОГРОМНЫЙ ФАЙЛ
@RichardBarber Из журнала: Кажется, он нашел gcc
: configure: 3475: проверка gcc configure: 3491: найден /usr/bin/gcc configure: 3502: результат: gcc
Он не принимает ваш gcc. gcc существует в /usr/bin как псевдоним clang. вам нужно будет указать полный путь к желаемому компилятору, например CC=/full/path/to/my/gcc ./configure
@RichardBarber Я попробовал это. Терминал останавливается с этим предупреждением: В файле, включенном в ./engine.c:661: prim:3394:37: предупреждение: передача 'UCell *' (он же 'unsigned long *') в параметр типа 'Cell *' (он же ' long *') преобразует указатели в целочисленные типы с разными знаками [-Wpointer-sign] __atomic_compare_exchange_n(a_addr, &uprev, unew, 0, ^~~~~~
Мне кажется успех. Теперь, когда нам предоставлена вся необходимая информация, я отказываюсь от своего голосования и даю ответ, теперь, когда он подхватывает ваш компилятор. Теперь вы получаете ошибки кода, которые вы можете отладить в другом месте.
Вы запустили ./configure, не указав ему, какой компилятор использовать. Воспользуйтесь ./configure --help
, чтобы узнать, как это сделать.
Конфигурация не выбирает вашу /usr/local
версию gcc.
CC=/full/path/to/my/gcc ./configure
Пожалуйста, покажите введенную вами команду и сообщение об ошибке.