Я устанавливаю программное обеспечение Titan2d (из Университета Буффало, Geophysical Mass Flow Group) в cygwin, я создаю каталог titan-3.0.0 (3.0.0 - последняя версия), в этом каталоге я запускаю $ sh install-titan.sh

Этот скрипт автоматически проверит установку MPI и HDF5. Если MPI не найден в его стандартном расположении, пользователю будет предложено ввести его абсолютный путь или выйти из установки. Если этот сценарий не может найти HDF5, пользователю будет предложено ввести его абсолютный путь или продолжить без установки HDF5.

В процессе установки я получил эту ошибку:

$ sh install-titan.sh 
/usr 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether build environment is sane... yes 
checking for gawk... gawk 
checking whether make sets $(MAKE)... yes 
checking for C++ compiler default output file name... a.exe 
checking whether the C++ compiler works... yes 
checking whether we are cross compiling... no 
checking for suffix of executables... .exe 
checking for suffix of object files... o 
checking whether we are using the GNU C++ compiler... yes 
checking whether /usr/local/bin/mpiCC accepts -g... yes 
checking for style of include used by make... GNU 
checking dependency style of /usr/local/bin/mpiCC... gcc3 
checking for gcc... /usr/local/bin/mpicc 
checking whether we are using the GNU C compiler... yes 
checking whether /usr/local/bin/mpicc accepts -g... yes 
checking for /usr/local/bin/mpicc option to accept ANSI C... none needed 
checking dependency style of /usr/local/bin/mpicc... gcc3 
checking for g77... g77 checking whether we are using the GNU Fortran 77 compiler... yes
checking whether g77 accepts -g... yes 
checking how to run the C preprocessor... /usr/local/bin/mpicc -E 
checking for a BSD-compatible install... /usr/bin/install -c 
checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for ranlib... ranlib checking how to get verbose linking output from g77... -v checking for Fortran libraries of g77... -L/usr/lib/gcc/i686-pc-cygwin/3.4.4 -L/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../.. -lfrtbegin -lg2c -lcygwin -luser32 -lkernel32 -ladvapi32 -lshell32 
checking for special C compiler options needed for large files... no 
checking for _FILE_OFFSET_BITS value needed for large files... no 
checking for _LARGE_FILES value needed for large files... no 
checking build system type... i686-pc-cygwin 
checking host system type... i686-pc-cygwin 
checking for pthread_create in -lpthread... yes 
checking for pkg-config... /usr/local/bin/pkg-config 
checking pkg-config is at least version 0.9.0... yes 
checking for MPICH2... configure: error: Package requirements (mpich2-ch3) were not met:

Variable 'exec_prefix' not defined in '/usr/local/lib/pkgconfig/mpich2-ch3.pc'

Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.

Alternatively, you may set the environment variables MPICH2_CFLAGS and MPICH2_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.

make: * No targets specified and no makefile found. Stop. make: Nothing to be done for `install'.

Я установил либо openmpi из установки cygwin, я выбираю полную установку пакета, чтобы автоматически загружалась и устанавливалась серия пакетов mpi, а также я скачал последний выпуск mpich-3.0.2 и более старый выпуск mpich2-1.2. 1p1 и я установили в cygwin с настройкой, сборкой, установкой. Однако, ошибка установки titan2d говорит мне, что требования пакета (mpich2-ch3) не были выполнены. Я знаю из руководства пользователя titan2d, что «если на вашем компьютере несколько копий MPI, этот скрипт найдет и будет использовать первую на вашем пути». Я не понимаю, почему моя установка происходит с этой ошибкой. Любая помощь будет оценена

1 ответ1

0

Вы должны попробовать экспортировать env var, используйте export MPICH2_LIBS="/usr/lib" . Иногда в пакетные библиотеки cygwin помещаются файлы /usr /lib и /usr /local /lib в зависимости от системы установки. Если он также не находит "include" (папка заголовка), он должен сказать вам, что env var установить так же, как и раньше.

Вы также можете отредактировать install.sh и найти, где он запускает configure и добавить следующий ключ --prefix=/usr . Префикс должен установить ниже и больше значение --libdir=/usr/lib --includedir=/usr/include --libexecdir=/usr/libexec --sbindir=/usr/sbin Вместо того, чтобы быть "/usr/local". Однако это более глобальный вариант, поэтому, если определенные файлы были доступны в /usr/local /*, они могут быть недоступны в /usr/*, так что вы решите проблему. Лучше решить для одного или другого по отдельности, поскольку в /usr или /usr/local может быть больше пакетов, которые вам нужны. Но я не эксперт!

поэтому строка в install.sh должна выглядеть примерно так ./configure --prefix=/usr

В большинстве случаев configure отправит вышеуказанные параметры в виде правильных флагов make в Makefile.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .