我正在尝试将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中非标准位置使用第三方C ++库,请执行以下常规步骤:


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

CPPFLAGS += -I/3rd-party/include

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

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

09-27 08:41