waf找不到现有的库

我正在尝试为node.js编写一个C ++模块。 节点正在使用waf作为构build器。

我想检查configuration,如果库“sigar”存在。 我正在试图这样做:

def configure(conf): conf.check_cxx(lib='sigar') 

当我运行“node-waf configure”时,我得到以下消息:

 Checking for library sigar : not found 

但是libsigar.so存在:

 # whereis libsigar libsigar: /lib64/libsigar.so 

在安装“libsigar”库之后,我也运行了ldconfig。 节点模块编译,链接和工作没有错误。 其他库如libm,libboost_system等可以在configure上find。

有人能告诉我我做错了什么吗? 安装一个库有没有什么特别的事情比只复制一个* .so到库path并运行ldconfig?

谢谢你的帮助。

解决它我自己。 使用-vvv选项运行configure非常有帮助,用于非常详细的输出。

 20:31:48 runner system command -> ['/usr/bin/g++', 'Release/test_1.o', '-o', '/home/reeaal/workspace/hwmonitor/build/.conf_check_0/testbuild/Release/testprog', '-Wl,-Bdynamic', '-lsigar'] 

当我尝试重新编译程序时,出现了一个链接器错误,这真的有所帮助:

 g++ test.cpp -Bdynamic -lsigar /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/libsigar.so: undefined reference to `dlsym' /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/libsigar.so: undefined reference to `dlopen' /usr/lib64/gcc/x86_64-suse-linux/4.5/../../../../lib64/libsigar.so: undefined reference to `dlclose' collect2: ld returned 1 exit status 

在检查libsigar之前添加一个链接器标志解决了这个问题:

 conf.env.append_value('LINKFLAGS', '-ldl')