The Exception is here:
g++ -L/usr/local/lib -I./include -I. -lopencv_core -lopencv_highgui -lopencv_imgproc main.o ColorTransfer.o
main.o: I
You really should pay attention to the order of arguments to g++
; it matters a lot (libraries should go last in good order - highest level to lowest level).
Use make -p
to learn about rules known to make
.... Then improve your Makefile
as follow
CXX=g++
CXXFLAGS= -I./include -I. -g -Wall
LDLIBS= -L./lib -lopencv_core -lopencv_highgui -lopencv_imgproc
all: ColorTransfer
ColorTransfer: main.o ColorTransfer.o
$(LINK.cc) $^ $(LDLIBS) -o $@
# etc....
I leave you to correct the other lines of your Makefile
... See also this answer ...
I corrected my make rules above : $^
has to be before $(LDLIBS)
!
BTW, remake is a nice tool to debug Makefile
-s; for instance, with remake -x
In your folder:
/lib
You have to be sure that there are:
opencv_core.so
opencv_highgui.so
opencv_imgproc.so
And that your LD_LIBRARY_PATH point to this folder. Otherwise, you've to export it:
export LD_LIBRARY_PATH=/lib
Have you download opencv sources or precompiled? Have you configured dynamic linker run-time bindings?
sudo ldconfig
Otherwise, try to check out this soloution!