Несколько версий gcc в makefile
В моем Makefile у меня есть
CC=g++
Когда я делаю mgrep gcc, у меня появляется несколько версий, таких как: gnu / gcc / 4.2.1 gnu / gcc / 4.7.3 и т. Д.
Я могу сделать загрузку модуля, чтобы изменить мою версию GCC.
Теперь предположим, что я хочу использовать несколько версий одновременно в разных make-файлах, как мне это сделать?
1 ответ
Решение
Система модулей в основном просто устанавливает путь к запрашиваемому модулю. Если вам нужен определенный компилятор в определенном make-файле, вы можете сделать три вещи:
- Ожидайте, что пользователь make-файла загрузит правильную версию перед вызовом Make. Возможно в сочетании с некоторыми условиями на основе
gcc -v|grep ${GCC_VERSION}
чтобы проверить, что это правильная версия. - выполнять
module load gnu/gcc/${GCC_VERSION}
внутри вашего make-файла. - использование
CC=/somewhere/path-to-gcc-version/bin/g++
вместоCC=g++
,
Лично я предпочитаю 1 или 3. Вы можете узнать, что путь делает module load ...
а потом which g++
,
[Кстати, я бы использовал CXX=g++
а также CC=gcc
- при условии, что вы не компилируете файлы, называемые *.c
как C++- код]