0

我一直在使用 makefile 来编译程序,而我刚刚开始使用 image 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

编译和工作正常。我在这里想念什么?

4

1 回答 1

0

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

修改 Makefile 以便打印输出Magick++-config(使用您提供的选项),并将其与您在命令行上获得的输出进行比较。

如果您正在寻找快速修复,请将反引号中的命令手动替换为您在命令行上获得的(显然是功能性的)输出。

于 2012-06-11T11:05:46.530 回答