Poiché sono più a mio agio nell'utilizzare Eclipse, ho pensato di provare a convertire il mio progetto da Visual Studio. Ieri ho provato un piccolo test molto semplice. Non importa quello che provo, make
non riesce con "più modelli di destinazione". (Questo è simile a this unanswered question.)L'applicazione molto semplice non funziona con "più modelli di destinazione" da Eclipse
Ho tre file:
Application.cpp:
using namespace std;
#include "Window.h"
int main() {
Window *win = new Window();
delete &win;
return 0;
}
Window.h:
#ifndef WINDOW_H_
#define WINDOW_H_
class Window {
public:
Window();
~Window();
};
#endif
Window.cpp:
#include <cv.h>
#include <highgui.h>
#include "Window.h"
const char* WINDOW_NAME = "MyApp";
Window::Window() {
cvNamedWindow(WINDOW_NAME, CV_WINDOW_AUTOSIZE);
cvResizeWindow(WINDOW_NAME, 200, 200);
cvMoveWindow(WINDOW_NAME, 0, 0);
int key = 0;
while (true) {
key = cvWaitKey(0);
if (key==27 || cvGetWindowHandle(WINDOW_NAME)==0) {
break;
}
}
}
Window::~Window() {
cvDestroyWindow(WINDOW_NAME);
}
Ho aggiunto i seguenti percorsi del compilatore includono percorso (-I
):
"$(OPENCV)/cv/include"
"$(OPENCV)/cxcore/include"
"$(OPENCV)/otherlibs/highgui"
ho aggiunto le seguenti librerie al linker (-l
):
cv
cxcore
highgui
E il seguente percorso di ricerca della libreria (-L
):
"$(OPENCV)/lib/"
Eclipse, il compilatore e il linker tutti riescono a comprese le intestazioni e le librerie. Sto usando il compilatore GNU C/C++ & da Cygwin.
Quando si compila, ottengo il seguente make
errore:
src/Window.d:1: *** multiple target patterns. Stop.
Window.d contiene:
src/Window.d src/Window.o: ../src/Window.cpp \
C:/Program\ Files/OpenCV/cv/include/cv.h \
C:/Program\ Files/OpenCV/cxcore/include/cxcore.h \
C:/Program\ Files/OpenCV/cxcore/include/cxtypes.h \
C:/Program\ Files/OpenCV/cxcore/include/cxerror.h \
C:/Program\ Files/OpenCV/cxcore/include/cvver.h \
C:/Program\ Files/OpenCV/cxcore/include/cxcore.hpp \
C:/Program\ Files/OpenCV/cv/include/cvtypes.h \
C:/Program\ Files/OpenCV/cv/include/cv.hpp \
C:/Program\ Files/OpenCV/cv/include/cvcompat.h \
C:/Program\ Files/OpenCV/otherlibs/highgui/highgui.h \
C:/Program\ Files/OpenCV/cxcore/include/cxcore.h ../src/Constants.h \
../src/Window.h
C:/Program\ Files/OpenCV/cv/include/cv.h:
C:/Program\ Files/OpenCV/cxcore/include/cxcore.h:
C:/Program\ Files/OpenCV/cxcore/include/cxtypes.h:
C:/Program\ Files/OpenCV/cxcore/include/cxerror.h:
C:/Program\ Files/OpenCV/cxcore/include/cvver.h:
C:/Program\ Files/OpenCV/cxcore/include/cxcore.hpp:
C:/Program\ Files/OpenCV/cv/include/cvtypes.h:
C:/Program\ Files/OpenCV/cv/include/cv.hpp:
C:/Program\ Files/OpenCV/cv/include/cvcompat.h:
C:/Program\ Files/OpenCV/otherlibs/highgui/highgui.h:
C:/Program\ Files/OpenCV/cxcore/include/cxcore.h:
../src/Window.h:
Ho provato a rimuovere tutte le intestazioni OpenCV da Window.d (da linea 2 in poi), ma l'errore rimane. Inoltre, ho aggiornato Eclipse e OpenCV, tutto senza alcun risultato.
Avete qualche idea da provare? Sono disposto a provare qualsiasi cosa!
Probabilmente è stato incluso il makefile. Poiché si tratta di un errore di 'make', probabilmente è più importante del codice sorgente C++. – skyking