4.9.1. configure 命令行选项约定

configure 默认会搜索各种可选功能(例如各类HPC网络API/支持库)的头文件和/或库文件。如果找到相关文件,Open MPI将构建对该功能的支持;如果未找到,Open MPI将跳过构建该功能的支持。

然而,如果在configure命令行中指定--with-FOO(其中FOO是该功能对应的CLI选项名称),而Open MPI无法找到对FOO的相关支持时,configure会假定它无法提供明确请求的功能,因此将中止运行以便人工解决该问题。

注意

使用--with-FOO强制Open MPI的configure 脚本在找不到对特定功能的支持时中止, 可能比在运行时意外发现Open MPI缺少对关键功能的支持更为可取。

此外,如果以--with-FOO=DIR的形式为FOO指定了搜索目录,Open MPI将:

  1. DIR/include目录中搜索FOO的头文件。

  2. 搜索 FOO 的库文件:

    1. 如果指定了--with-FOO-libdir=LIBDIR,则在LIBDIR中搜索。

    2. 否则,在DIR/lib中搜索,如果未找到,则继续在DIR/lib64中搜索。

  3. 如果找到相关的头文件和库文件:

    1. Open MPI 将构建对 FOO 的支持。

    2. 如果找到FOO库的根路径既不是/usr也不是/usr/local,Open MPI将在编译时使用RPATH标志指向FOO库所在的目录。

      重要提示

      Open MPI不会为/usr/lib[64]/usr/local/lib[64]设置RPATH,因为许多系统默认已在这些目录中搜索运行时库;为它们添加RPATH可能会对搜索路径顺序产生意外影响。

警告

--with-FOO-libdir=LIBDIR 选项通常不需要使用;只有当 FOO 的库被安装在"非预期"位置时才需要指定。

还需注意--with-FOO=DIR--with-FOO-libdir=LIBDIR的区别:前者是一个目录,系统会为其添加 诸如/include/lib等后缀;而后者则被假定为完整的库目录名称(例如 /opt/some_library/lib)。