На mac, g ++ (clang) не удается выполнить поиск / usr / local / include и / usr / local / lib по умолчанию

Я нахожусь на mac, и я использовал homebrew для установки gmp .

 Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx In file included from main.cpp:2: ./gcjlib.hpp:4:10: fatal error: 'gmpxx.h' file not found #include  ^ 1 error generated. 

Итак, я прямо сказал g++ чтобы использовать /usr/local/include

 Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx -I/usr/local/include ld: library not found for -lgmp clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Итак, я прямо сказал g++ чтобы использовать /usr/local/lib

 Kyumins-iMac:gcjlib math4tots$ g++ main.cpp -lgmp -lgmpxx -I/usr/local/include -L/usr/local/lib Kyumins-iMac:gcjlib math4tots$ ./a.out sum is -4444 absolute value is 4444 

Таким образом, единственная проблема заключается в том, что g++ не может подтвердить /usr/local .

Но утомительно печатать все это время, особенно когда я просто пишу небольшие однофайловые программы.

Есть ли способ заставить g++ распознавать материал в /usr/local по умолчанию? Есть ли стандартный способ для homebrew ?


Я на OS X 10.9.3 с Xcode 5.1.1 в случае, если это имеет значение.

Я также использую Homebrew и имею аналогичную проблему в Mac OSX Maverick 10.9.5 и Xcode 6.0.1, но он был решен путем запуска:

xcode-select --install

Обратите внимание, что это не работает без двойных дефисов, указанных в предыдущем ответе. Это устанавливает инструменты командной строки, которые также создают /usr/lib/ и /usr/include/ . Я не знаю, почему Homebrew автоматически не проверяет это при установке, так как он проверяет Xcode …

Если вы хотите точно проверить, какие папки ищет ваш компилятор для файлов заголовков, вы можете написать:

cpp -v

Попробуйте запустить xcode-select install

По крайней мере, на Mavericks я обнаружил, что если я установлю приложение XCode без установки инструментов командной строки, то инструменты будут доступны, но обычные сборки unix-ey работают неправильно. Один из симптомов состоит в том, что /usr/local/include не относится к пути поиска include. Средства командной строки, похоже, решают эту проблему.

Обходным путем было бы:

 export C_INCLUDE_PATH=/usr/local/include export CPLUS_INCLUDE_PATH=/usr/local/include 

По крайней мере, это привело к тому, что предварительный процессор будет вести себя здесь 🙂

У меня есть Yosemite 10.10.5 и запуск xcode-select --install не xcode-select --install проблему для меня. Команда вернулась с помощью xcode-select: error: command line tools are already installed, use "Software Update" to install updates .

Когда я запустил xcode-select -p , он показал /Applications/Xcode.app/Contents/Developer . Я закончил удаление Xcode из каталога Applications, в результате чего xcode-select -p возвращался /Library/Developer/CommandLineTools . Эта фиксированная ошибка компилятора для меня.

  • Как указать несколько целей в моем подкоде для моего проекта Xcode?
  • Как XCode / OSX это сделал? Перемещено проект XCode в другое место. XCode автоматически знал, где он находится
  • Автоматическое форматирование источника Xcode
  • Не удается установить Xcode на OS X Snow Leopard
  • Xcode: TEST против макросов препроцессора DEBUG
  • ViewController.Type не имеет члена с именем
  • Codesign API Dropbox не работает в Xcode 4.6.3: «Объект кода вообще не подписан»
  • Как использовать / установить gcc в Mac OS X 10.8 / Xcode 4.4
  • Расстояние, перемещаемое акселерометром
  • Загрузите и установите версию Xcode 10 без учетной записи разработчика Premium
  • Xcode 4 с открывающейся скобой на новой линии
  • Давайте будем гением компьютера.