Встановлено gcc з Homebrew, тепер як використовувати цей gcc замість clang?


23

Я встановив gcc за допомогою brew install gcc, але коли я gccнабираю поведінку за замовчуванням, все одно використовується clang. Як встановити речі, щоб набравши gccтермінал автоматично використовував gccвстановлений Homebrew?


1
Я пережив це питання і працював для мене, це посилання нижче. Відповідь Марка Сетчелла була найкращою для цього питання. stackoverflow.com/questions/28970935 / ...
user1896293

Відповіді:


16

Ймовірно, ви захочете вивчити вашу змінну $ PATH. Значок gccвід homebrew повинен проживати, /usr/local/binі це має бути до версії Xcode gcc/ clang.

Якщо ви зміните змінну PATH - не забудьте вийти з оболонки або повторно переробити її .

Ця відповідь має елегантне рішення і з використанням псевдонімів, тому вам навіть не потрібно думати і не піклуватися про шлях, якщо у вас встановлено більше одного gcc.


Якщо виставити доменний gcc раніше у змінну $ PATH, ніж у версії Xcode, достатньо для того, щоб гарантувати, що на gcc доморощеної мови буде посилатися? Я не був впевнений, як працюватимуть подвійні визначення в $ PATH.
NeutronStar

2
Шляхи залежать від порядку. Поміщення / usr / local перед / usr - це стандартний спосіб перекриття програми за замовчуванням. Я бачив, як люди ставлять ~ / bin перед цим.
Андрій Лазар

2
Homebrew не ставить gccв /usr/local/bin. Це для сумісності, оскільки все б використовувалося gccзамість clangкомпілятора системи (який також псевдонім як gcc). Що він робить, це поставити версійне посилання в /usr/local/binтакій як gcc-8.
Джейсон


1

Якщо which gccдає

> which gcc
/usr/bin/gcc

У вас є два варіанти:

  1. Створіть псевдонім .

  2. Зробіть нове gccпосилання під /usr/local/bin/. Домашня сторінка посилається на власні gcc under /usr/local/bin/gcc-<version>для сумісності. Отже, роблячи

    ln -sf /usr/local/bin/gcc-4.9 / usr / local / bin / gcc

вказуватиме на /usr/local/bin/gccсимвольне посилання , gcc-4.9встановлену Homebrew , які переважували б gccвід , /usr/binякщо ваш шлях вказує , /usr/local/binперш /usr/bin.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.