Не могу скомпилировать исходный код на Mac

У меня уже установлен xcode на OSX Yosemite. Я также запустил его и принял условия.

я тоже умею gcc --versionи вижу

Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 7.0.0 (clang-700.1.76)
Target: x86_64-apple-darwin14.5.0
Thread model: posix

Теперь, если я сделаю

wget http://apache.mirrors.pair.com//httpd/httpd-2.4.17.tar.bz2
brew install pcre
tar zxvf httpd-2.4.17.tar.bz2
cd httpd-2.4.17
./configure

Ошибка, которую я получаю,

Configure:
configure: Configuring Apache Portable Runtime Utility library...
configure:
checking for APR-util... yes
checking for gcc... /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.10.xctoolchain/usr/bin/cc
checking whether the C compiler works... no
configure: error: in `/Users/abhi/Downloads/httpd-2.4.17':
configure: error: C compiler cannot create executables
See `config.log' for more details

Почему компилятор C не может создать исполняемый файл? Я показал вам, что компилятор C правильно установлен на моей машине.

Для текущей OS X gcc не является компилятором C - вы не показали, что компилятор C установлен правильно - компилятор C - clang
@Mark, но по умолчанию gccимеет символическую ссылку clang, и в прямом случае вызов -совместим gcc. @KnowsNotMuch, действительно ли вы See `config.log' for more detailsтак предложили автоконференцию?
@Saran это не связано с clang - не могли бы вы указать на какую-нибудь документацию, в которой так говорится
Вы установили инструменты командной строки?
@Mike Хорошо, плохо, это не символическая ссылка . Однако он просто запускает копию clang: вот вывод моей оболочки oxygen:~ saran$ gcc clang: error: no input files. Кроме того, если я правильно помню, команда gccдаже не запустится без установленных инструментов командной строки.
да инструменты командной строки установлены
Можете ли вы поместить config.log в pastebin и дать ссылку на него в своем вопросе? Ответ где-то там.

Ответы (4)

Вам нужно убедить configure, что существует больше компиляторов c, чем gcc. Пытаться:

export CC=clang

В общем, установки Xcode недостаточно для компиляции некоторых проектов с открытым исходным кодом.

Фактическая ошибка, которую вы видите, вероятно, указана в списке, config.logпоскольку тест, который она делает, не работает в OS X. Трудно предположить, связано ли это с тем, что ей не нравится clang/llvm, который на gccсамом деле является вашим двоичным файлом.

Некоторые шаблонные вещи, чтобы попробовать:

xcode-select --install

Это должно привести к ошибке типа «xcode-select: ошибка: инструменты командной строки уже установлены, используйте «Обновление программного обеспечения» для установки обновлений», когда у вас действительно установлены все инструменты. Если у вас не установлены инструменты и включаемые файлы, вы должны получить запрос на установку инструментов и, возможно, должны ввести пользователя/пароль администратора.

Затем вы можете копаться в фактическом конкретном журнале ошибок или попробовать получить компилятор gcc вместо использования Apple llvm.

brew install gcc

Это приведет к gcc-5установке gnu по /usr/local/binпути, и если он будет использоваться поверх Apple, /usr/bin/gccу вас может вообще не быть ошибки сборки.

Я попробовал оба ваших предложения, и это то, что я получилLast login: Sat Nov 21 22:58:10 on ttys000 MacBook-Pro:~$ xcode-select --install xcode-select: error: command line tools are already installed, use "Software Update" to install updates MacBook-Pro:~$ brew install gcc Warning: gcc-5.2.0 already installed MacBook-Pro:~$

Запустите Xcode, выберите «Настройки», затем «Местоположения». Вы увидите раскрывающийся список в «Инструментах командной строки». Выберите самую новую версию, закройте диалоговое окно, затем снова вызовите brew.

После выполнения

xcode-select --install

бегать

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

Это сработало для меня.