Titan2d 源代码安装时出错

Titan2d 源代码安装时出错

我正在 cygwin 中安装 Titan2d 软件(来自布法罗大学地球物理质量流量组),我创建了一个目录 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'.

我已经从 cygwin 设置中安装了 openmpi,我选择了完整包安装,因此一系列 mpi 包会自动下载和安装,并且我下载了最新版本的 mpich-3.0.2 和旧版本 mpich2-1.2.1p1,然后使用 configure、make、make install 在 cygwin 中安装。但是,titan2d 安装错误告诉我包要求 (mpich2-ch3) 未得到满足。我从 titan2d 用户指南中知道“如果您的机器上有多个 MPI 副本,此脚本将查找并使用您路径中的第一个副本”。我不明白为什么我的安装会出现此错误。任何帮助都将不胜感激

答案1

您应该尝试导出环境变量,使用export MPICH2_LIBS="/usr/lib"。有时在 cygwin 中,软件包库会放入 /usr/lib 和 /usr/local/lib,具体取决于所涉及的安装系统。如果它也找不到“include”(头文件文件夹),它应该会告诉您要设置哪些环境变量,就像以前一样。

您还可以编辑 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 会将上述选项作为 Makefile 中的正确 make 标志发送。

相关内容