Как использовать 2 разные версии GCC в Linux Ubuntu и заставить MAKE использовать одну из них - PullRequest
9 голосов
/ 11 ноября 2010

Я использую последнюю версию Ubuntu, которая поставляется с версией gcc 4.4.5.Мне нужно перекомпилировать программу, которая не была написана мной, и которая может быть скомпилирована только с более старой версией gcc, такой как 4.0.Мне удалось настроить эту старую версию и использовать префикс во время процесса установки, чтобы моя старая версия gcc находилась в /opt/gcc-4.0.1/bin.Я попытался создать символическую ссылку, используя ln -s /opt/gcc-4.0.1/bin/gcc gcc.Но когда я вызываю gcc -v, я все равно получаю результат gcc version 4.4.5.Чтобы скомпилировать мою программу, которая уже поставляется с make-файлом, если я делаю make, она все еще использует новую версию gcc.Как я могу сказать make использовать старую версию?

1 Ответ

20 голосов
/ 11 ноября 2010

Make использует некоторые стандартные переменные, чтобы определить, какие инструменты использовать, переменная C-компилятора называется «CC». Вы можете установить переменную CC прямо в вашем Makefile

CC=/opt/gcc-4.0.1/bin/gcc

, что хорошо, если вы работаете в одиночку, или у всех одинаковые настройки. Или вы можете передать его в командной строке следующим образом:

make CC=/opt/gcc-4.0.1/bin/gcc

третий параметр установлен /opt/gcc-4.0.1/bin, прежде чем все остальное в вашем пути (поэтому он не работает для вас, текущий каталог не в пути, поэтому символическая ссылка ставить туда не будем при поиске)

export PATH=/opt/gcc-4.0.1/bin:$PATH

Для полноты, в вашем решении символической ссылки вам нужно будет вызвать ./gcc, чтобы получить правильный экземпляр gcc, но ИМХО это, вероятно, не лучшее решение.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...