我尝试在自己的项目中使用 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 本身不提供静态库吗?以及如何修复此错误以便我可以在自己的项目中使用它?