我正在试图编译一个C程序,它需要Image的MagickWand.h:
#include "wand/MagickWand.h"但是,我的Image是通过我的Mac安装的,因此我将包含更改为实际位置:
#include </usr/local/Cellar/imagemagick/6.8.9-7/include/ImageMagick-6/wand/MagickWand.h>但是,当我编译程序时,我收到了以下错误:
/usr/local/Cellar/imagemagick/6.8.9-7/include/ImageMagick-6/wand/MagickWand.h:71:10: fatal error: 'wand/method-attribute.h' file not found
#include "wand/method-attribute.h"现在,我已经进入了.h文件,当这个错误出现时,我会更改它们的#include,以便正确地指出它们(因为这似乎是问题所在),但是这里总是有一个新的错误,我不想花几个小时手工更新这些文件,因为是Homebrew安装的缘故。有人对如何在不手动更新每个文件的情况下修复此问题有任何建议吗?我不知道到底是什么问题,所以也许有一个更优雅的解决方案。
发布于 2014-10-14 11:30:48
您的代码应该将MagickWand库作为系统标头,并保持通用路径。这将使您以后的编译不会在系统/库更新时中断。
#include <wand/MagickWand.h>通过设置预处理器包含标志ImageMagick,以及使用-L & -l标志的链接/库选项,告诉C编译器在何处安装了-L和-l。
示例:
clang -I/usr/local/Cellar/imagemagick/6.8.9-7/include/ImageMagick-6 \
myProject.c -o myProject.o \
-L/usr/local/Cellar/imagemagick/6.8.9-7/lib \
-lMagickWand-6.Q16 \
-lMagickCore-6.Q1为了简化整个过程,ImageMagick附带了MagickWand-config实用程序。这将为您处理库、包含和定义。
示例:
CFLAGS=$(MagickWand-config --cflags)
LFLAGS=$(MagickWand-config --libs)
clang $CFLAGS myProject.c -o myProject.o $LFLAGShttps://stackoverflow.com/questions/26352148
复制相似问题