next up previous contents
Next: Использование разделяемых бибилиотек Up: Компоновка и запуск программ Previous: Компоновка и запуск программ   Contents

Скрипты для компиляции и компоновки приложений

Реализация mpich предлагает четыре команды для компиляции и компоновки программ на С (mpicc), Фортране 77 (mpif77), С++ (mpiCC) и Фортране 90 (mpif90).

Поддерживаются также следующие специальные опции:

-mpilog
Создавать версию, генерирующую log-файлы MPE.
-mpitrace
Создавать версию с трассировкой.
-mpianim
Создавать версию, генерирующую анимацию в реальном времени.
-show
Показать команды, которые можно использовать без их действительного запуска.
Используйте эти команды как обычные компиляторы C, Фортрана 77, С++ или Фортрана 90. Например,
mpicc -c foo.c
mpif77 -c foo.f
mpiCC -c foo.C
mpif90 -c foo.f
и
mpicc -o foo foo.o
mpif77 -o foo foo.o
mpiCC -o foo foo.o
mpif90 -o foo foo.o
Команды для компоновщика могут включать дополнительные библиотеки. Например, для использования процедур из библиотеки math для С, используйте
mpicc -o foo foo.o -lm
Комбинирование компиляции и компоновки в единой команде, как показано здесь
mpicc -o foo foo.с
mpif77 -o foo foo.f
mpiCC -o foo foo.C
mpif90 -o foo foo.f
также можно использовать.

Заметьте, что хотя суффиксы .c для программ С и .f для программ Фортрана являются стандартными, такого же соглашения о суффиксах для программ на С++ и Фортране 90 нет. Примеры, показанные выше подходят ко многим, но не ко всем системам. mpich пытается определить приемлемые суффиксы, но не всегда в состоянии сделать это.

Вы можете переопределить выбор компилятора определением переменных окружения MPICH_CC,
MPICH_F77, MPICH_CCC, MPICH_F90. Однако, помните, что это будет работать, только если альтернативный компилятор совместим с компилятором по умолчанию (под совместимостью мы подразумеваем, что они используют те же самые размеры для типов данных и генерируют объектный код, который может использоваться библиотеками mpich). Если Вы хотите переопределить компоновщик, испорльзуйте переменные окружения MPICH_CLINKER, MPICH_F77LINKER, MPICH_CCLINKER, MPICH_F90LINKER.


Subsections

Alex Otwagin 2002-12-16