2016-11-05 109 views
0

我添加MacOS X C++ LinkerGCC C++ CompilerIncludesLibraries庫和路徑,但我仍然無法#include其路徑和文件我已經添加了庫。的Eclipse/C++找不到頭文件

代碼:
#include <opencv2/text/ocr.hpp>

錯誤:

fatal error: 'opencv2/text/ocr.hpp' file not found


Eclipse設置:(項目>屬性> C/C++編譯>設置)
MacOS X的C++鏈接器>庫
條庫搜索路徑:
/usr/local/Cellar/opencv3/3.1.0_4/lib
/usr/local/cellar/opencv3/3.1.0_4/include/opencv2
/usr/local/cellar/opencv3/3.1.0_4/include/opencv2/text
庫:
ocr

GCC C++編譯器>包括
包含路徑:
/usr/local/cellar/opencv3

Mac文件結構:
ocr.hpp存在/usr/local/cellar/opencv3/3.1.0_4/include/opencv2/text

我的想法:

  • 看來Eclipse是仍然在尋找在~/cellar/opencv而不是~/cellar/opencv3
  • 因爲我可以#include任何庫在/usr/local/cellar/opencv/2.4.13.1/include/opencv2沒有添加路徑到Eclipse項目設置。
  • 但我不能#include/usr/local/cellar/opencv3/3.1.0_4/include/opencv2

的庫我已經習慣了在Ruby中工作,其中庫管理是超級容易,所以它的炒制我的大腦有點想要得到的東西建立在C++中。任何幫助將非常感激。

+1

你的路徑不一致(一些具有 「窖」,一些 「地窖」)。 | '/ usr/local/cellar/opencv3/3.1.0_4/include/opencv2' - 將「include」目錄設置爲庫搜索路徑有什麼意義?鏈接器沒有用於頭文件。 |如果openCV頭文件位於'/ usr/local/cellar/opencv3/3.1.0_4/include /'中,那麼爲什麼你要在你的include路徑中指定多個目錄呢?畢竟,你沒有做一個'#include <3.1.0_1/include/opencv2/text/ocr.hpp>'... –

+0

這個問題與鏈接器無關,因爲它甚至沒有任何連接器準備編譯(在預處理過程中失敗)。 –

+0

如果我通過命令行導航它的拼寫'cellar',但是如果我通過Eclipse的'add directory:filesystem'導航它的'Cellar',所以只嘗試路徑變化以試圖獲得某些工作 –

回答

0

解決方案:

項目>屬性> C/C++常規>路徑和符號> GNU C++
改變/usr/local/Cellar/opencv/usr/local/Cellar/opencv3

...>庫路徑
刪除所有路徑並添加/usr/local/Cellar/opencv3

然後包括:
#include <3.1.0_4/include/opencv2/text/ocr.hpp>

感謝您的評論的援助。

這篇文章也是有幫助的:
Eclipse C/C++ (CDT) import files into project - header file not found - include path

+0

您可以避免那個醜陋的包含路徑如果您將「/3.1.0_4/include」添加到您在「GCC C++編譯器>包含」中設置的路徑。那麼你應該能夠擁有'#include ',這正是我期望看到的。 –