找不到Magick ++头文件

时间:2014-04-27 17:38:34

标签: c++ linux g++ imagemagick magick++

希望有人可以帮助我,因为我完全失去了。我已经在互联网上搜索过,实在找不到任何帮助我的东西。

我正在尝试编译使用Magick ++库的c ++程序。我安装了Magick ++看似很好。在我当前的目录中找到main.cpp,我正在运行g++ main.cpp。我收到以下错误...

In file included from main.cpp:3:0:
/home/simeon/ImageMagick-6.8.9-0/Magick++/lib/Magick++.h:9:30: fatal error: Magick++/Include.h: No such file or directory
compilation terminated.

为了试图解决这个问题,我正在宣布Magick ++的绝对路径。我在main.cpp中,所以我有这个似乎正在工作......

#include "/home/simeon/ImageMagick-6.8.9-0/Magick++/lib/Magick++.h"

错误发生在Magick ++。第9行(由于我的绝对路径而找到它),看起来像这样......

#include <Magick++/Include.h>

这是我感到困惑的地方,因为这个文件确实存在于它所说的地方。如果我跑

 cat /home/simeon/ImageMagick-6.8.9-0/Magick++/lib/Magick++/Include.h

然后文件打开没有问题并显示其内容。

有没有人对你发生了什么有任何建议?我不明白为什么我需要指定绝对路径以及为什么g ++不首先找到头文件。有什么方法我可以告诉g ++在特定的地方寻找Magick ++标题吗?

提前致谢! 西麦

3 个答案:

答案 0 :(得分:5)

由于您使用Linux,我认为您可以安装随安装一起提供的imagemagick软件包。它可用于我所知道的所有Linux版本。

在Debian / Ubuntu下,它会是这样的:

sudo apt-get install libmagick++-dev

否则,我个人会使用cmake来完成所有设置。这有点学习曲线。但在我看来,如果您的命令行是:

g++ main.cpp

然后您在命令行中缺少几个-I选项。安装软件包可能不需要您使用-I选项(我使用cmake并且不要注意那些事情......它对我有用。)

所以要解决你的问题,你可能需要这样的东西:

g++ -I/home/simeon/ImageMagick-6.8.9-0/Magick++/lib main.cpp

但是,如果您有一个.cpp文件,则可能需要使用-o myprog命令行选项。

答案 1 :(得分:1)

ImageMagick附带了一个配置实用程序,可以为您提供正确的路径。对于Magick ++,它只是Magick++-config(请参阅Magick ++文档中的Usage部分。)

IM_CXXFLAGS=$(Magick++-config --cxxflags)
IM_LDFLAGS=$(Magick++config --ldflags)
g++ $IM_CXXFLAGS $IM_LDFLAGS main.cpp

您需要使用系统的include语句(<>),并通过包含父标题来保持简单。

#include <Magick++.h>

答案 2 :(得分:1)

如果您只需要单个文件,这里是Magick ++模块的正确构建命令:

g++ `Magick++-config --cxxflags --cppflags` -O2 -Wall -o yourProgramName yourFile.cpp `Magick++-config --ldflags --libs`

如果不起作用,您可能需要先安装libmagick++-dev

sudo apt-get install libmagick++-dev

从Unix Source安装imageMagick:

  1. 下载ImageMagick-7.0.3-5.tar.gz from here
  2. 使用说明from here
  3. 进行安装