Как указать, какой GCC для MacPorts использовать?

11696
hpy

Я скомпилировал GCC 4.4.3 и установил его в / usr / local / bin, но всякий раз, когда я устанавливаю порт через MacPorts 1.8.2, подробный вывод говорит, что MacPorts использует /usr/bin/gcc-4.2:

проверка на gcc ... /usr/bin/gcc-4.2

Как заставить MacPorts найти свой собственный GCC 4.4.3? Вот мой существующий путь:

/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/lib:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin 

Я использую Mac OS X 10.6.2 Snow Leopard.

5

3 ответа на вопрос

7
raimue

MacPorts использует поставляемые Apple компиляторы везде, где это возможно, так как они очень исправлены для платформы. Например, они позволяют создавать несколько архитектур, указав флаги -arch, что невозможно в FSF gcc.

Если вы измените символические ссылки в / usr / bin / cc, MacPorts все равно попытается использовать флаги, понятные только для версии Apple. Это может сделать невозможным компиляцию чего-либо с использованием MacPorts.

Просто верьте разработчикам MacPorts, что использование предоставленных Apple компиляторов - лучший способ.

7
anddam

Установите переменную configure.compiler в Portfile соответствующим образом:

configure.compiler macports-gcc-4.3 

или добавьте configure.compiler = macports-gcc-4.3 к вашей команде.

ср этой вики страницы .

Известно ли, что это все еще вызывает проблемы, как в другом ответе? Спасибо! hpy 13 лет назад 0
Я не смог определить, в чем заключались проблемы, первый результат Google для «gcc 4.4.3 проблема с нулевой длиной строки» - это тот же вопрос суперпользователя. anddam 13 лет назад 2
2
Ben Hocking

Первый ответ: не надо! По моему опыту, GCC 4.4.3 не будет работать должным образом на Snow Leopard. Это вызовет проблемы со строками нулевой длины.

Второй ответ: отредактируйте ваши символические ссылки в / usr / bin для ссылки на материал 4.4. Вот скрипт, который я написал для этого:

rm /usr/bin/c++  ln -s /usr/bin/c++-$ /usr/bin/c++ rm /usr/bin/cc ln -s /usr/bin/cc-$ /usr/bin/cc rm /usr/bin/cpp ln -s /usr/bin/cpp-$ /usr/bin/cpp rm /usr/bin/g++ ln -s /usr/bin/g++-$ /usr/bin/g++ rm /usr/bin/gcc ln -s /usr/bin/gcc-$ /usr/bin/gcc rm /usr/bin/gcov ln -s /usr/bin/gcov-$ /usr/bin/gcov 

Я назвал это chgCver, поэтому, чтобы изменить мой компилятор на 4.4, я бы набрал chgCver 4.4. Конечно, прежде чем вы запустите это, вам также нужно убедиться, что, например, c ++ - 4.4 указывает на правильное место (возможно /opt/local/bin/gcc-mp-4.4) и т. Д. Я могу дать вам больше подробностей, если вы склонны игнорировать мой первый и третий ответы.

Третий ответ: не надо! (Смотрите первый ответ.)

Не знал, что в GCC 4.4.3 возникла эта проблема, спасибо! hpy 14 лет назад 0
В этом нет необходимости, просто используйте `gcc_select`. Adam Rosenfield 13 лет назад 3
Поскольку мы говорим об использовании MacPorts, есть порт "gcc_select", который будет выполнять ту же работу и немного больше. anddam 13 лет назад 3