0

プログラムをコンパイルするためにメイクファイルを使用してきましたが、イメージ マジック ライブラリを使い始めたばかりで、明らかに何か間違ったことをしています。

私が追加した行は次のとおりです。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

Magick++-configの出力がMakefile とコンソールで異なる可能性は十分にあります(その出力は、ヘッダー ファイルの場所など、コンパイラに適切なオプションを与える必要があるためです)

(指定したオプションを使用して)出力を出力するように Makefile を変更Magick++-configし、コマンド ラインで取得した出力と比較します。

簡単な修正を探している場合は、バッククォート内のコマンドを、コマンド ラインで取得した (明らかに機能する) 出力に手動で置き換えます。

于 2012-06-11T11:05:46.530 に答える