首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编译phash程序时遇到的问题

编译phash程序时遇到的问题
EN

Stack Overflow用户
提问于 2012-06-10 18:45:36
回答 2查看 1.6K关注 0票数 1

这里有一些(可能)非常简单的问题:我试图在Ubuntu11.10中使用感知散列库pHash。我已经安装了ffmpeg,顺便说一下,这就是我所做的:

代码语言:javascript
复制
sudo apt-get install libphash0
sudo apt-get install libphash0-dev

然后尝试编译这个程序:

代码语言:javascript
复制
#include <iostream>

#include <pHash.h>

using namespace std;

int main()
{
    ulong64 myhash=0;

    ph_dct_imagehash("test.jpg", myhash);
    cout<<myhash<<endl;
}

在编译时,它只是打印出来:

代码语言:javascript
复制
undefined reference to `ph_dct_imagehash'

有什么建议吗?我该怎么办?提前感谢!

马泰奥·蒙蒂

EN

回答 2

Stack Overflow用户

发布于 2012-06-10 19:02:20

你没有链接到图书馆。头文件包含库内容的定义。实际的实现在库本身。您可以静态或动态地链接到它。

如果你使用make,将你的库路径添加到makefile并重新编译:

代码语言:javascript
复制
LIBS = -L/path/to/your/lib -lyourlib

如果库安装在系统中,它可能位于某个已知路径中。(/usr/lib/或...)。因此,尝试添加:

代码语言:javascript
复制
LIBS = -lyourlib

注意: make系统将-lname解释为<path>/libname.so。并不总是正确的,但几乎就是这样。

票数 2
EN

Stack Overflow用户

发布于 2012-06-10 19:03:13

您肯定忘了链接pHash库,所以链接器找不到这个函数。

尝试将-l pHash添加到您的GCC命令行(或更新您的makefile)。如果不起作用,您可能还需要使用-L "/usr/lib/"指定库路径( *.a文件的位置

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

https://stackoverflow.com/questions/10968049

复制
相关文章

相似问题

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