gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 13:36:40 25 4
gpt4 key购买 nike

我尝试在自己的项目中使用 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)了解更多详情。

关于c++ - 使用编译 vlfeat 库时找不到 -lvl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29327334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com