Hola amigos. Esta semana he estado peleándome con la librería Visionlib, y el problema era que tras compilar la librería y generar visionlib.a , al ejecutar el Makefile de mi componente queriendo usar linesDetection::solisAlgorithm , me daba el siguiente error:<br>

<br>viewer.o: In function `estratega::Viewer::color(<div id=":13z">colorspaces::Image const&amp;)&#39;:<br>viewer.cpp:(.text+0x35bf): undefined reference to `visionLibrary::linesDetection::solisAlgorithm(_IplImage&amp;, std::vector&lt;Segment2D, std::allocator&lt;Segment2D&gt; &gt;*)&#39;<br>


collect2: ld returned 1 exit status<br>make: *** [estratega] Error 1<br><br></div>Empleando el comando nm para revisar los objetos de la librería, observé que no aparecían los linesDetection, lo que me llevó a descubrir que el Makefile contenía errores. Al final una solución sencilla a un problema que me ha tenido liado unos días. Os adjunto el Makefile corregido para subirlo al repositorio si lo estimais conveniente.<br>

<br>Con esta fórmula, me compila perfectamente y luego soy capaz de usar la librería sin problema.<br><br>Saludos<br><br><br><br>JDEROBOTDIR = /usr/local<br>CXXFLAGS = -Wall -g -I. -I$(JDEROBOTDIR)/include/jderobot `pkg-config --cflags opencv` `pkg-config --cflags gtkmm-2.4 libglademm-2.4 gthread-2.0` `pkg-config --cflags gtkglextmm-1.2`<br>

LDFLAGS = `pkg-config --libs gtkmm-2.4 libglademm-2.4 gthread-2.0` `pkg-config --libs opencv` -lgsl -lgslcblas `pkg-config --libs gtkglextmm-1.2`<br>LDADD = $(JDEROBOTDIR)/lib/jderobot/libJderobotIce.so \<br>    $(JDEROBOTDIR)/lib/jderobot/libJderobotUtil.so \<br>

    $(JDEROBOTDIR)/lib/jderobot/libJderobotInterfaces.so \<br>    $(JDEROBOTDIR)/lib/jderobot/libprogeo.so<br><br>all: visionlib.o geometry.o image.o linesDetection.o cvfast.o structs.o<br>    ar r visionlib.a visionlib.o geometry.o linesDetection.o image.o cvfast.o structs.o<br>

    ranlib visionlib.a<br><br>visionlib.o: visionlib.h<br>    g++ -c $(CXXFLAGS) visionlib.h -o visionlib.o<br><br>geometry.o: geometry.h geometry.cpp<br>    g++ -c $(CXXFLAGS) geometry.h geometry.cpp<br><br>image.o: image.h image.cpp<br>

    g++ -c $(CXXFLAGS) image.h image.cpp<br><br>linesDetection.o: linesDetection.h linesDetection.cpp<br>    g++ -c $(CXXFLAGS) linesDetection.h linesDetection.cpp<br><br>cvfast.o: cvfast.cpp<br>    g++ -c $(CXXFLAGS) cvfast.cpp -o cvfast.o<br>

<br>structs.o: structs.h<br>    g++ -c $(CXXFLAGS) structs.h -o structs.o<br><br>#Clean<br><br>clean:<br>    rm visionlib.a *.o *.gch<br>