【问题标题】:Including STXXL library in the MakeFile在 MakeFile 中包含 STXXL 库
【发布时间】:2018-02-27 20:39:21
【问题描述】:

我试图将 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的副本

【问题讨论】:

    标签: c++ makefile cmake stxxl


    【解决方案1】:

    在 GNU 的非标准位置使用第三方 C++ 库 常规步骤如下:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-24
      • 2019-07-11
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 2020-06-22
      相关资源
      最近更新 更多