несколько версий gcc в makefile

В моем Makefile у меня есть

CC=g++

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

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

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

1

Решение

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

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

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

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

Другие решения

Других решений пока нет …