Очень простое приложение перестало работать с “несколькими целевыми шаблонами” от Eclipse

Так как я - более удобное использование 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, все напрасно.

У Вас есть какие-либо идеи стоящими попытки? Я готов попробовать что-либо!

10
задан Community 23 May 2017 в 12:25
поделиться

1 ответ

Вы работаете в системе Cygwin?

Я видел эту проблему до использования Cygwin - в основном, make видит : в пути и думает, что это другое определение цели, отсюда и ошибка.

Если вы работаете с Cygwin, вы можете попробовать заменить c: / на / cygdrive / c / . Если нет, вы можете попробовать использовать относительные пути или использовать сетевое монтирование и посмотреть, исправит ли это это.

26
ответ дан 3 December 2019 в 14:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: