From: Antonio Ospite Date: Thu, 22 Oct 2015 08:42:01 +0000 (+0200) Subject: Makefile: split compilation and linkage X-Git-Url: https://git.ao2.it/experiments/opencv_trail_effect.git/commitdiff_plain/125a069284c63b999824fc708869e137f84476bc?ds=inline Makefile: split compilation and linkage This fixes an error when compiling with clang++: clang: error: cannot specify -o when generating multiple output files : recipe for target 'opencv_trail_effect' failed make: *** [opencv_trail_effect] Error 1 The error happens because in this Makefile header files are in the target dependencies, so they are added to the compilation command, but clang does not support that when compiling and linking in the same command. Also take care of using LIKN.cpp to link the program, as it is a C++ program. --- diff --git a/.gitignore b/.gitignore index 75be08c..829d7b7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +*.o opencv_trail_effect diff --git a/Makefile b/Makefile index de166de..a008ba9 100644 --- a/Makefile +++ b/Makefile @@ -28,8 +28,10 @@ CXXFLAGS += -fno-common \ CXXFLAGS += $(shell pkg-config --cflags opencv) LDLIBS += $(shell pkg-config --libs opencv) -opencv_trail_effect: $(wildcard *.hpp) +LINK.o = $(LINK.cpp) +opencv_trail_effect: +opencv_trail_effect.o: $(wildcard *.hpp) # Some command lines to imitate different trail styles @@ -46,7 +48,7 @@ average: opencv_trail_effect ./opencv_trail_effect -l 10 -s background -d average -B clean: - rm -f opencv_trail_effect vgdump gtk.suppression + rm -f *.o opencv_trail_effect vgdump gtk.suppression test: opencv_trail_effect [ -f gtk.suppression ] || wget -nv https://people.gnome.org/~johan/gtk.suppression