2015-12-13 8 views
1

В моем Makefile У меня естьнесколько версий GCC в Makefile

CC=g++ 

Когда я mgrep GCC, у меня есть несколько версий, перечисленных как: ГНУ/ССАГПЗ/4.2.1 гну/ССАГПЗ/4.7.3 etc

Я могу загрузить модуль, чтобы изменить мою версию gcc.

Теперь предположим, что я хочу использовать несколько версий одновременно в разных make-файлах, как это сделать?

ответ

1

Модульная система в основном просто устанавливает путь к запрашиваемому модулю. Если вам нужен конкретный компилятор в определенном файле makefile, вы можете сделать три вещи:

  1. Ожидайте, что пользователь файла makefile загрузит нужную версию перед вызовом Make. Возможно, в сочетании с некоторым условием, основанным на gcc -v|grep ${GCC_VERSION}, чтобы проверить, что это правильная версия.
  2. Выполните module load gnu/gcc/${GCC_VERSION} внутри вашего файла.
  3. Использовать CC=/somewhere/path-to-gcc-version/bin/g++ вместо CC=g++.

Лично я предпочитаю 1 или 3. Вы можете узнать, что путь, делая module load ..., а затем which g++.

[Кстати, я хотел бы использовать CXX=g++ и CC=gcc - при условии, что вы не компиляции файлов называется *.c как C++ - кода]

+0

Я попробовал метод 3. 'который НКУ' дал/A/B/C/D/бен/ССАГПЗ. Поэтому я попробовал CC =/A/B/C/D/bin/gcc. У меня ошибка. make:/A/B/C/D/bin/gcc: Команда не найдена – user2524261

+0

Странно, это должно сработать. –

+0

Извините, я делал опечатку. – user2524261