Так как я - более удобное использование Eclipse, я думал, что попытаюсь преобразовать свой проект из Visual Studio. Вчера я попробовал очень простой небольшой тест. Независимо от того, что я пробую, make
сбои с "несколькими целевыми шаблонами". (Это подобно этому оставшемуся без ответа вопросу.)
У меня есть три файла:
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
#include
#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);
}
Я добавил, что следующие пути к компилятору включают путь (-I
):
"$(OPENCV)/cv/include"
"$(OPENCV)/cxcore/include"
"$(OPENCV)/otherlibs/highgui"
Я добавил следующие библиотеки к компоновщику (-l
):
cv
cxcore
highgui
И следующий путь поиска библиотеки (-L
):
"$(OPENCV)/lib/"
Eclipse, компилятор и компоновщик все преуспевают включая заголовки и библиотеки. Я использую компилятор C/C++ GNU и компоновщика от Cygwin.
При компиляции я получаю следующее make
ошибка:
src/Window.d:1: *** multiple target patterns. Stop.
Window.d содержит:
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:
Я пытался удалить все заголовки OpenCV из Window.d (от строки 2 вперед), но ошибка остается. Кроме того, я обновил Eclipse и OpenCV, все напрасно.
У Вас есть какие-либо идеи стоящими попытки? Я готов попробовать что-либо!
Вы работаете в системе Cygwin?
Я видел эту проблему до использования Cygwin - в основном, make
видит :
в пути и думает, что это другое определение цели, отсюда и ошибка.
Если вы работаете с Cygwin, вы можете попробовать заменить c: /
на / cygdrive / c /
. Если нет, вы можете попробовать использовать относительные пути или использовать сетевое монтирование и посмотреть, исправит ли это это.