【发布时间】:2016-02-27 07:50:10
【问题描述】:
我正在尝试在此网页中制作 PCA-SIFT 代码 (pasift-0.91nd.tar.gz):http://www.cs.cmu.edu/~yke/pcasift/。运行 ./configure 就OK了,make命令报C编译器找不到头文件pgm.h:
image.cc:18:22:致命错误:pgm.h:没有这样的文件或目录 #包括 ^ 编译终止。
互联网上有一个网页讨论了这个问题:http://ubuntuforums.org/showthread.php?t=1918422。最后给出了解决方案:
显然,头文件在目录/usr/include/pgm-5.1 - 编译时将其放入包含目录的首选方法是使用 pkgconfig。您将需要添加类似
pkg-config --cflags openpgm-5.1在编译结束时 命令以获取正确的标题并将pkg-config --libs openpgm-5.1添加到您的链接命令中。
,但我无法理解。具体来说,“在编译命令末尾添加pkg-config --cflags openpgm-5.1”是什么意思?我应该怎么做,从字面上添加pkg-config --cflags openpgm-5.1 或此命令在终端中返回的结果?并添加到什么文件? Makefile 由 ./configure 生成。我应该添加到 Makefile 还是 ./configure?我已经成功安装了 libpgm-dev,它们确实在 /usr/include/pgm-5.1 中。命令pkg-config --cflags openpgm-5.1 返回-I/usr/include/pgm-5.1 -I/usr/lib/x86_64-linux-gnu/pgm-5.1/include,命令pkg-config --libs openpgm-5.1 返回-lpgm -lpthread -lm。
由于该线程已关闭,我不得不在这里问。希望熟悉Linux编译过程的人可以帮助我解决这个问题。非常感谢。
【问题讨论】:
标签: linux makefile include-path pkg-config