2014-04-08 79 views
0

您可以幫我解決以下問題嗎?Code :: Blocks中的OpenCV代碼完成

我正在運行64位Debian Linux上的Code :: Blocks 13.12。我是這個IDE的新用戶。當我在代碼中創建:: Blocks的新OpenCV的項目,並設置適當的編譯器標誌和鏈接標誌,通過將IE瀏覽器...

  • `pkg配置OpenCV的--cflags`設置>編譯器>編譯器設置標籤>其他選項標籤
  • `pkg配置的OpenCV --libs`設置>編譯>鏈接設置標籤>其他連接器選項
  • 的/ usr /含UDE//usr/include目錄/ OpenCV的//usr/include目錄/ opencv2/路徑進入設置>編譯器>搜索目錄選項卡>編譯器選項卡

編譯項目僅僅是精細。唯一不起作用的是OpenCV函數的代碼完成。

我在main.cpp以下代碼。當我在imread功能上單擊鼠標右鍵並選擇查找聲明:'imread'菜單選項,的警報未找到: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; 
} 

當我選擇左邊的垂直欄上的符號選項卡上,我可以看到CV命名空間存在,但它似乎是空的。沒有子項,它不能擴展爲std命名空間。

我做錯了什麼?我應該如何說服Code :: Blocks來解析OpenCV的頭文件?剛剛重新啓動/重新打開IDE /項目不起作用。 :-)

非常感謝您的回覆。

+0

我是一個有經驗的CB用戶和如果我能在13.12年得到它的話,我是該死的。我在Linux上使用的另一個C++ IDE是CodeLite:在這裏,只要opencv頭文件安裝完成,那麼opencv符號的代碼完成,查找聲明等工作,不需要做任何額外的項目或編譯器配置。 –

+0

感謝您的確認,我會嘗試CodeLite然後... –

回答

0

在Ubuntu 12.04上使用Code :: Blocks 10.05我這樣做,你可以試試這個。

轉到設置 - >編譯器和調試器設置

  • 搜索目錄選項卡中點擊編譯子選項卡中添加OpenCV的包括路徑,

    通常,/usr/local/include

  • 點擊鏈接器子選項卡,並添加OpenCV的bin目錄

    通常/usr/local/bin

  • 現在去鏈接設置標籤和其他連接選項添加鏈接庫

    一樣,

    -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lope ncv_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

+1

謝謝,但它不適用於我。 :-(13.12版本的Code :: Blocks可能不會遞歸地正確解析*/usr/include/opencv2/*中的所有文件,其中OpenCV的頭文件放在我的系統中(該路徑設置在*搜索目錄*上*編譯器*選項卡)。 –