我尝试在自己的项目中使用VLFEAT。按照其主页上提供的说明,我仍然有一个问题。
首先,我使用g ++'make ARCH = glnx86'编译该库,看起来还可以,然后我使用一个小程序检查它是否正确编译。
extern "C" {
#include <vl/generic.h>
}
int main (int argc, const char * argv[]) {
VL_PRINT ("Hello world!") ;
return 0;
}
我使用以下脚本进行编译:
$ g++ main.cpp -o vlfeat-test -IVLROOT -LVLROOT/bin/glnx86/ -lvl
VLROOT是我计算机中vlfeat的简称。
失败了!!错误消息是:
/usr/bin/ld: cannot find -lvl
我知道-l标志用于告诉g ++应该链接哪个静态库。在这种情况下,似乎需要“ libvl.a”。但是,我检查了vlfeat,它没有'libvl.a'。仅找到动态库“ libvl.so”。
vlfeat本身不提供静态库吗?以及如何解决此错误,以便我可以在自己的项目中使用它?
您需要使用'$'
符号来正确使用VLROOT
变量的值:
export VLROOT=/path/to/vlfeat
g++ vl.cpp -o vlfeat-test -I$VLROOT -L$VLROOT/bin/glnx86/ -lvl
然后确保动态加载程序找到可以执行的库:
export LD_LIBRARY_PATH=$VLROOT/bin/glnx86/
./vlfeat-test
或者,也可以libvl.so
在下面复制/usr/local/lib
并运行ldconfig
以刷新缓存。
请参阅dlopen(3)
以获取更多详细信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句