Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译phash程序时遇到的问题_C++_Compilation_Undefined Reference_Phash - Fatal编程技术网

C++ 编译phash程序时遇到的问题

C++ 编译phash程序时遇到的问题,c++,compilation,undefined-reference,phash,C++,Compilation,Undefined Reference,Phash,这里有一个(可能)非常简单的问题:我试图在Ubuntu11.10中使用感知哈希库pHash。我已经安装了ffmpeg,顺便说一下,这就是我所做的: sudo apt-get install libphash0 sudo apt-get install libphash0-dev 然后尝试编译此程序: #include <iostream> #include <pHash.h> using namespace std; int main() { ulong6

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

sudo apt-get install libphash0
sudo apt-get install libphash0-dev
然后尝试编译此程序:

#include <iostream>

#include <pHash.h>

using namespace std;

int main()
{
    ulong64 myhash=0;

    ph_dct_imagehash("test.jpg", myhash);
    cout<<myhash<<endl;
}
有什么建议吗?我该怎么办? 提前谢谢


Matteo Monti

您没有链接到该库。标题包含库内容的定义。实际实现在库本身中。您可以静态或动态链接到它

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

LIBS = -L/path/to/your/lib -lyourlib
若库安装在系统中,它可能位于已知路径之一。(/usr/lib/or…)。因此,请尝试添加:

LIBS = -lyourlib

注意:使系统将
-lname
解释为
/libname.so
。不一定是真的,但差不多就是这样

您没有链接到库。标题包含库内容的定义。实际实现在库本身中。您可以静态或动态链接到它

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

LIBS = -L/path/to/your/lib -lyourlib
若库安装在系统中,它可能位于已知路径之一。(/usr/lib/or…)。因此,请尝试添加:

LIBS = -lyourlib

注意:使系统将
-lname
解释为
/libname.so
。不一定是真的,但差不多就是这样

您肯定忘了链接pHash库,因此链接器无法找到此函数


尝试将
-l pHash
添加到GCC命令行(或更新makefile)。如果它不起作用,您可能还需要使用
-L”/usr/lib/“

指定库路径(*.a文件的位置),您肯定忘了链接pHash库,因此链接器找不到此函数

尝试将
-l pHash
添加到GCC命令行(或更新makefile)。如果不起作用,您可能还需要使用
-L”/usr/lib/“

Good:)指定库路径(*.a文件的位置)而且。。。我该怎么做?我应该包括更多吗?对不起,我知道这是一个愚蠢的问题,但我没有经验!好!:)而且。。。我该怎么做?我应该包括更多吗?对不起,我知道这是一个愚蠢的问题,但我没有经验!