Magick ++ makefile不起作用,但看似相同的命令行选项有效

时间:2012-06-11 10:42:44

标签: c++ makefile g++ imagemagick

我一直在使用makefile编译程序,我刚开始使用图像magick库,我显然做错了。

我添加的行是:Magick++-config --cppflags --cxxflags --ldflags --libs

这是我的makefile,在运行make时我被告知(链接器?)找不到Magick ++。h

CFLAGS = -g -fPIC

SOURCES= $(wildcard *.cpp)

OBJECTS=$(patsubst %.cpp, %.o, $(SOURCES))

TARGET=$(lastword $(subst /, ,$(realpath .)))

LINKS= -lcprocessing -lglut -lGLU -lGL

all: $(TARGET)
    @echo $(TARGET) built

$(TARGET): $(OBJECTS)
    @g++ $(CFLAGS) $(LINKS) -o $@ $(OBJECTS) `Magick++-config --cppflags --cxxflags --ldflags --libs`

clean:
    rm -rf $(OBJECTS) $(TARGET)

然而,运行:

g++ -lcprocessing -lglut -lGLU -lGL `Magick++-config --cppflags --cxxflags --ldflags --libs` Spot.cpp -o Spot

编译并正常工作。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

很有可能Magick++-config的输出在Makefile和控制台上是不同的(因为输出是应该给编译器提供适当的选项,比如在哪里找到头文件)。

修改Makefile,使其打印Magick++-config的输出(带有您给出的选项),并将其与命令行输出的输出进行比较。

如果您正在寻找快速修复,请使用命令行中显示的(显然功能性)输出手动替换反引号中的命令。