Почему g ++ связан с clang, а не clang ++ инструментами разработчика ma c? - PullRequest
4 голосов
/ 03 февраля 2020

Я просто пытался объяснить кому-то разницу между скомпилированным и интерпретированным кодом, когда меня встретили

main.cpp:1:10: fatal error: 'iostream' file not found

при вызове g ++ main. cpp для простого файла hello world c ++.

Я немного разбирался в этом и обнаружил ...

JM:Desktop user$ which g++
/usr/local/bin/g++
JM:Desktop user$ ls -al /usr/local/bin/g++
lrwxr-xr-x  1 user  admin  47  4 Dez  2018 /usr/local/bin/g++ -> /Library/Developer/CommandLineTools/usr/bin/c++
JM:Desktop user$ ls -al /Library/Developer/CommandLineTools/usr/bin/c++
lrwxr-xr-x  1 root  wheel  5  3 Feb 20:29     /Library/Developer/CommandLineTools/usr/bin/c++ -> clang

... что g ++ связан с clang, а не clang ++, и поэтому я вызываю C -компилятор.

Я просто удалил инструменты разработчика и установил их снова - тоже самое.

Это нормально или что-то испортило мою систему? Есть ли смысл? Что мне не хватает?

Спасибо за помощь!

1 Ответ

4 голосов
/ 03 февраля 2020

Это может быть ошибка Homebrew ...

JM:Desktop user$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin

/ usr / local / bin добавлено Homebrew.

'C ++', например, правильно ссылается на clang ++, но он находится в / usr / bin:

JM:Desktop user$ which c++
/usr/bin/c++

... и / usr / bin / g ++.

Я решил это, просто удалив / user / local / bin / g ++. Ссылки все еще странные.

...