在MakeFile

时间:2017-09-19 07:06:38

标签: c++ makefile cmake stxxl

我试图将{4}}回复后的STXXL库安装到自定义路径,以这种方式向cmake提供前缀:

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

当我运行测试时,它们似乎工作正常。但是我想在不同的MakeFile中包含STXXL并编译该项目。在那个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的良好背景。这与this

不重复

1 个答案:

答案 0 :(得分:1)

从GNU中的非标准位置使用第三方C ++库制定常规步骤:

  1. 将第三方库头的路径添加到C ++预处理器标志中。 E.g。

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

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