0

我试图在答案之后将 STXXL 库安装到自定义路径,以这种方式提供前缀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 的良好背景。这不是带有 STXXL 的 Makefile 的副本

4

1 回答 1

1

要在 GNU 的非标准位置使用第三方 C++ 库,请执行以下常规步骤:

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

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

    LDFLAGS += -L/3rd-party/lib -Wl,-rpath=/3rd-party/lib -l3d-party
    
于 2017-09-19T09:34:03.453 回答