【发布时间】:2014-05-21 03:57:38
【问题描述】:
您能帮我解决以下问题吗?
我在 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 函数上单击鼠标右键并选择 Find declaration of: '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/项目是行不通的。 :-)
非常感谢您的回复。
【问题讨论】:
-
我是一位经验丰富的 CB 用户,如果我能在 13.12 中让它工作,我该死的。我在 Linux 上使用的另一个 C++ IDE 是 CodeLite:在这里,只要安装了 opencv 头文件,那么 opencv 符号的代码补全、查找声明等就可以工作,而无需对项目或编译器配置做任何额外的操作。
-
感谢您的确认,那我试试 CodeLite ...
标签: c++ linux opencv autocomplete codeblocks