Sim*_*ell 3 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.
Run Code Online (Sandbox Code Playgroud)
为了试图解决这个问题,我正在宣布我的main.cpp中的Magick ++.h的绝对路径,所以我有这个似乎正在工作......
#include "/home/simeon/ImageMagick-6.8.9-0/Magick++/lib/Magick++.h"
Run Code Online (Sandbox Code Playgroud)
错误发生在Magick ++.的第9行(由于我的绝对路径而发现它),看起来像这样......
#include <Magick++/Include.h>
Run Code Online (Sandbox Code Playgroud)
这是我感到困惑的地方,因为这个文件确实存在于它所说的地方.如果我跑
cat /home/simeon/ImageMagick-6.8.9-0/Magick++/lib/Magick++/Include.h
Run Code Online (Sandbox Code Playgroud)
然后文件打开没有问题,并显示其内容.
有没有人对你发生了什么有任何建议?我不明白为什么我需要指定绝对路径以及为什么g ++不首先找到头文件.有什么方法我可以告诉g ++在特定的地方寻找Magick ++标题吗?
提前致谢!西麦
由于您使用Linux,我认为您可以安装随安装一起提供的imagemagick软件包.它适用于我所知道的所有Linux版本.
在Debian/Ubuntu下它会是这样的:
sudo apt-get install libmagick++-dev
Run Code Online (Sandbox Code Playgroud)
否则,我个人会使用cmake来完成所有设置.这是一个学习曲线.但在我看来,如果您的命令行是:
g++ main.cpp
Run Code Online (Sandbox Code Playgroud)
然后,您-I在命令行中缺少几个选项.安装包可能不需要你使用该-I选项(我使用cmake而不是真正关注那些东西......它只对我有用.)
所以要解决你的问题,你可能需要这样的东西:
g++ -I/home/simeon/ImageMagick-6.8.9-0/Magick++/lib main.cpp
Run Code Online (Sandbox Code Playgroud)
但是,如果您有一个.cpp文件,则可能需要使用-o myprog命令行选项.