2

我正在尝试使用带有 opencv 的简单 c++ 代码:

#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <iostream>

using namespace std;

int main ( int argc, char **argv )
{
 cvNamedWindow( "My Window", 1 );
 IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 );
 CvFont font;
 double hScale = 1.0;
 double vScale = 1.0;
 int lineWidth = 1;
 cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,
          hScale, vScale, 0, lineWidth );
 cvPutText( img, "Hello World!", cvPoint( 200, 400 ), &font,
         cvScalar( 255, 255, 0 ) );
 cvShowImage( "My Window", img );
 cvWaitKey();
 cout << "hello world";
 return 0;
}

我已经包含在properties-->c/c++ build-->setting-->Cygwin c++ compiler-->Includes the absolute path of my opencv/build/include 下,并在Cygwin c++ linker-->libraries下包含路径和这次库(opencv_core246,opencv_highgui246)使用unix风格的路径/cygdrive/c/...(我读到有人建议这样做)。我收到此错误:“make:多个目标模式。停止。” 我知道这个问题与路径中的make和多个冒号有关......我在 Windows 7 (x64)、cygwin 和 Eclipse 上。谁能帮我?谢谢

4

3 回答 3

4

容易解决:在project->properties->c/c++ build->Tool chain editor下,把当前的builder从gnu make builder改成CDT Internal builder。来自 cygwin 的 make 中的错误使它与 Eclipse 生成的 makefile 一起生成

也可以看看。 http://compbiotoolbox.blogspot.co.uk/2012/01/getting-started-with-eclipse-and-cygwin.html

于 2013-12-18T18:32:32.267 回答
1

通常,您需要将所有 Windows 路径转换为 ​​cygwin 样式的路径,例如c:\homebecome /cygdrive/c/home(该cygpath实用程序可以为您进行此转换)。

make抱怨它无法解析您的目标规则,这些规则使用冒号 ( :) 将目标与其依赖项分开。使用 windows 路径时,会引入过多的冒号并混淆解析器。

于 2013-07-23T14:51:06.477 回答
0

我在这个问题上工作的时间太长了,很难解决。我正在使用 Cygwin 和 Eclipse for C++ 在 Windows 8 上工作。

我要做的是转到项目-> 属性-> C/C++ 构建-> 工具链编辑器并将当前构建器设置为 CDT 内部构建器并将当前工具链设置为 MinGw GCC。

我的工具链设置为 Cygwin GCC,这就是导致问题的原因,因为仅更改当前的构建器并不能解决任何问题。由于 Cygwin 是最近更新需要 /cygwin/c/ 样式路径且 CDT 工具不符合要求的版本,因此切换到 MinGW(没有此问题)修复它是有道理的。

希望这对其他人有帮助!

于 2015-01-24T08:49:28.747 回答