首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用编译vlfeat库时找不到-lvl

使用编译vlfeat库时找不到-lvl
EN

Stack Overflow用户
提问于 2015-03-29 08:59:43
回答 1查看 302关注 0票数 1

我尝试在我自己的项目中使用VLFEAT。按照主页提供的说明,我还有一个问题。

首先,我使用g++ 'make =glnx86 86‘编译这个库,然后我使用一个小程序来检查它是否正确编译。

代码语言:javascript
复制
extern "C" {
#include <vl/generic.h>
}

int main (int argc, const char * argv[]) {
VL_PRINT ("Hello world!") ;
return 0;
}

我使用以下脚本编译:

代码语言:javascript
复制
 $ g++ main.cpp -o vlfeat-test -IVLROOT -LVLROOT/bin/glnx86/ -lvl

VLROOT是我计算机中vlfeat路径的缩写。

失败了!!错误信息是:

代码语言:javascript
复制
 /usr/bin/ld: cannot find -lvl

我知道-l标志用于告诉g++应该链接哪个静态库。在这种情况下,似乎需要“libvl.a”。但是,我检查vlfeat,它没有“libvl.a”。只有动态库'libvl.so‘被找到。

vlfeat本身不提供静态库吗?以及如何修复此错误,以便我可以在自己的项目中使用它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-29 11:31:31

需要使用'$'符号才能正确使用VLROOT变量的值:

代码语言:javascript
复制
export VLROOT=/path/to/vlfeat
g++ vl.cpp -o vlfeat-test -I$VLROOT -L$VLROOT/bin/glnx86/ -lvl

然后,为了确保动态加载程序找到库,可以这样做:

代码语言:javascript
复制
export LD_LIBRARY_PATH=$VLROOT/bin/glnx86/
./vlfeat-test

或者将libvl.so等复制到/usr/local/lib下并运行ldconfig来刷新缓存。

有关更多详细信息,请参阅dlopen(3)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29327334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档