将源代码构建的库链接到由autotools管理的程序

时间:2011-11-07 01:39:55

标签: c linker autotools

我有一个c程序,需要安装一个名为libnuma的库。但我在并行机器中没有root访问权限,我需要运行该程序。所以我下载了libnuma的源代​​码并编译了它。我有一个libnuma.a文件,我假设是库。我需要将这个库与我拥有的c程序链接起来。该程序使用autotools生成配置文件和makefile。我是autotools的新手。请告诉我如何在不成为root用户的情况下链接此库。

阿贾伊。

1 个答案:

答案 0 :(得分:2)

设置CPPFLAGS和LDFLAGS应该足够了。首先,尝试:

$ ./configure LDFLAGS=-L/path/to/lib CPPFLAGS=-I/path/to/include

(其中libnuma.a是/path/to/lib/libnuma.a,numa.h是/path/to/include/numa.h。 也就是说,指定目录。)如果这不起作用,请检查config.log以查看出错的地方。如果您使用的程序的configure脚本是使用旧版autoconf构建的,则可能需要执行以下操作:

$ LDFLAGS=-L/path/to/lib CPPFLAGS=-I/path/to/include ./configure

代替。 (第二次调用仅适用于Bourne shell。使用csh / tcsh,您需要以其他方式设置环境变量,例如使用env。)您还可以选择在shell的环境中进行这些设置(例如,在.bashrc中)或在config.site文件中。