Code :: Blocks中OpenCV的代码完成

时间:2014-04-08 12:39:41

标签: c++ linux opencv autocomplete codeblocks

您可以帮我解决以下问题吗?

我在64位Debian Linux上运行 Code :: Blocks 13.12 。我是这个IDE的新用户。当我在Code :: Blocks中创建新的 OpenCV 项目并设置正确的编译器标志和链接器标志时,即通过放置......

  • `pkg-config opencv --cflags` 进入设置>编译器> “编译器设置”选项卡>其他选项标签
  • `pkg-config opencv --libs` 进入设置>编译器>链接器设置选项卡>其他链接器选项
  • / usr / include / / usr / include / opencv / / usr / include / opencv2 / 进入的路径设置>编译器>搜索目录标签>编译器选项卡

项目的编译很好。唯一不起作用的是OpenCV函数的代码完成。

我在 main.cpp 中有以下代码。当我在imread功能上单击鼠标右键并选择查找声明:'imread'菜单选项时,会出现一条带有 Not found:imread 消息的警报。但是在STD的cerr上做同样的事情就像预期的那样工作。

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace std;
using namespace cv;

int main( int argc, char * argv[] ) {

  Mat img = imread( "lena.jpg", CV_LOAD_IMAGE_COLOR );

  if ( img.empty() ) {
    cerr << "Unable to load the Lena image!" << endl;
    return -1;
  }

  namedWindow( "lena", CV_WINDOW_AUTOSIZE );
  imshow( "lena", img );

  waitKey( 0 );
  return 0;
}

当我选择左侧垂直条上的 Symbols 标签时,我可以在那里看到 cv 名称空间,但它似乎是空的。没有子项,也不能将其扩展为 std 名称空间。

我做错了吗?我应该如何说服Code :: Blocks来解析OpenCV的头文件?只是重新启动/重新打开IDE /项目不起作用。 : - )

非常感谢您的回复。

1 个答案:

答案 0 :(得分:0)

在Ubuntu 12.04上使用Code :: Blocks 10.05我这样做,你可以试试这个。

转到设置 - &gt;编译器和调试器设置

  • 搜索目录标签中,点击编译器子标签添加OpenCV包含路径,

    通常是/usr/local/include

  • 点击链接器子标签,然后添加opencv bin目录

    通常为/usr/local/bin

  • 现在转到链接器设置标签,然后转到其他链接器选项添加链接库

    -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab