在 MakeFile 中包含 STXXL 库

Including STXXL library in the MakeFile

我试图将 STXXL 库安装到自定义路径,遵循 this 以这种方式向 cmake 提供前缀的答案:

cmake -DCMAKE_INSTALL_PREFIX=/usr . && make all install

当我 运行 测试时,它们似乎运行良好。但我想将 STXXL 包含在不同的 MakeFile 中并编译该项目。在那个 MakeFile 中有一行

STXXL_CONFIG = /opt/stxxl/stxxl.mk

我相信配置文件 stxxl.mk 来自旧的基于 make 的安装(我也无法在我的系统中找到它)。我想知道如何修改此文件以包含 STXXL 库并编译自定义项目。

没有修改 MakeFile 中的上述语句,我收到错误:

undefined reference to 'stxxl::get_next_seed()' collect2: error: ld returned 1 exit status

不用说,我没有 root 访问权限,不幸的是,我也没有很好的 MakeFiles 背景。这不是 Makefile with STXXL

的副本

从 GNU Make 中的 non-standard 位置使用第三方 C++ 库,常规步骤是:

  1. 将第 3 方库的路径 headers 添加到您的 C++ 预处理器标志中。例如

    CPPFLAGS += -I/3rd-party/include
    
  2. 将第 3 方 shared/staric 库的路径添加到您的链接器标志和库本身。假设库名为 lib3rd-party.solib3rd-party.a,例如

    LDFLAGS += -L/3rd-party/lib -Wl,-rpath=/3rd-party/lib -l3d-party