我一直在使用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
编译并正常工作。我在这里缺少什么?
答案 0 :(得分:0)
很有可能Magick++-config
的输出在Makefile和控制台上是不同的(因为输出是应该给编译器提供适当的选项,比如在哪里找到头文件)。
修改Makefile,使其打印Magick++-config
的输出(带有您给出的选项),并将其与命令行输出的输出进行比较。
如果您正在寻找快速修复,请使用命令行中显示的(显然功能性)输出手动替换反引号中的命令。