Использвать компилятор GNU g++ вместо c++ на mac os

Рейтинг: 0Ответов: 0Опубликовано: 17.03.2023

У меня есть проект на С++, который я ранее писал на компе с Ubuntu, а недавно пересел на мак и теперь хочу продолжить работу уже на нём.

Есть makefile, в котором есть следующая строчка:

$(DELTA):   $(SRC)/atlantida/delta.o
    g++ -o $(BUILD)/atlantida/$(DELTA) $(SRC)/atlantida/delta.o

delta.o:    $(SRC)/atlantida/delta.cpp
    g++ -O0 -g -Wall -c $(SRC)/atlantida/delta.cpp

Но при запуске make в выводе терминала я вижу, что используется ещё и с++, который собирает исполняемый файл из объектного:

c++    -c -o src//atlantida/delta.o src//atlantida/delta.cpp
g++ -o ./build//atlantida/delta.exe ./src//atlantida/delta.o

Дело в том, что c++ --version показывает, что c++ - это эпловский clang:

ivan@MacBook-Pro-Ivan projectAntares % c++ --version
Apple clang version 14.0.0 (clang-1400.0.29.202)
Target: arm64-apple-darwin22.3.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

Вопроса у меня два:

  1. Почему мак использует свой компилятор c++, если я в makefile прошу его использовать g++
  2. Как его заставить собирать исполняемый файл именно при помощи GNU g++ (gcc) вместо Clang?

На всякий случай:

ivan@MacBook-Pro-Ivan projectAntares % which gcc
/opt/homebrew/bin/gcc
ivan@MacBook-Pro-Ivan projectAntares % which g++
/opt/homebrew/bin/g++
ivan@MacBook-Pro-Ivan projectAntares % gcc --version
gcc (Homebrew GCC 12.2.0) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

ivan@MacBook-Pro-Ivan projectAntares % g++ --version
g++ (Homebrew GCC 12.2.0) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

P.S.У меня mac os Ventura 13.2.1, макбук с M1 Pro. Если для ответов на вопросы понадобится что-то ещё, я оперативно подгружу всё, что нужно)

Ответы

Ответов пока нет.