błąd instalacji z kodem źródłowym o nazwie Titan2d

0

Instaluję oprogramowanie Titan2d (z Buffalo University, Geophysical Mass Flow Group) w cygwin, tworzę katalog titan-3.0.0 (ostatnia wersja 3.0.0), w tym katalogu uruchamiam $ sh install-titan.sh

Ten skrypt automatycznie sprawdzi instalację zarówno MPI, jak i HDF5. Jeśli MPI nie zostanie znalezione w jego standardowej lokalizacji, użytkownik zostanie poproszony o podanie bezwzględnej ścieżki lub zakończenie instalacji. Jeśli ten skrypt nie może zlokalizować HDF5, użytkownik zostanie poproszony o podanie bezwzględnej ścieżki lub kontynuowanie bez instalowania HDF5.

Podczas procesu instalacji otrzymałem ten błąd:

$ 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'.

Zainstalowałem albo openmpi z instalacji cygwin, wybrałem pełną instalację pakietu, więc seria pakietów mpi jest automatycznie pobierana i instalowana, a także pobrałem ostatnią wersję mpich-3.0.2 i starszą wersję mpich2-1.2. 1p1 i ja zainstalowałem w cygwin z config, make, make install. Jednak błąd instalacji titan2d mówi mi, że wymagania pakietu (mpich2-ch3) nie zostały spełnione. Wiem z instrukcji użytkownika titan2d, że „Jeśli na twoim komputerze jest wiele kopii MPI, ten skrypt znajdzie i użyje pierwszego na twojej ścieżce”. Nie rozumiem, dlaczego moja instalacja zawiera ten błąd. Każda pomoc będzie mile widziana

Nick Pisano
źródło

Odpowiedzi:

0

Powinieneś spróbować wyeksportować env var, użyj export MPICH2_LIBS="/usr/lib". Czasami biblioteki pakietów cygwin umieszczają się w / usr / lib i / usr / local / lib, w zależności od systemu instalacyjnego. Jeśli również nie można znaleźć „include” (folder nagłówka), powinien powiedzieć ci, co env var ustawić tak jak wcześniej.

Możesz także edytować install.sh i znaleźć, gdzie on działa, configurei dodać następujący przełącznik --prefix=/usr . Prefiks powinien ustawić poniżej i więcej na --libdir=/usr/lib --includedir=/usr/include --libexecdir=/usr/libexec --sbindir=/usr/sbin Zamiast być „/ usr / local”. Jest to jednak opcja bardziej globalna, więc jeśli niektóre pliki byłyby dostępne w / usr / local / *, mogą nie być dostępne w / usr / *, więc odwrócisz swój problem. Lepiej rozwiązać indywidualnie dla jednego lub drugiego, ponieważ jako / usr lub / usr / local może być potrzebnych więcej pakietów. Ale nie jestem ekspertem!

więc wiersz w install.sh powinien wyglądać mniej więcej tak ./configure --prefix=/usr

W większości przypadków config wyśle ​​powyższe opcje jako poprawne flagi make w pliku Makefile.

jonretting
źródło