2015-11-17 111 views
2

我正在嘗試使用png ++庫。已經將它添加到庫搜索路徑在Eclipse(Windows用戶,如果相關),但我得到了找不到庫png ++

fatal error: png++/png.hpp: No such file or directory 

我真的不知道該怎麼辦。 謝謝!

+0

確保您的路徑無需管理員權限即可訪問。還要確保你的目錄中包含「png ++」文件夾 – Sreekar

+0

該路徑是可訪問的,並且該目錄具有文件「png.hpp」。我已經改變了包括 #include 但是也沒有工作。 –

+0

如果目錄名是png ++ - 0.2.9和png.hpp,並且所有其他頭文件都在它下面,那麼將其更改爲png ++。然後將「png ++」的「父目錄」添加到Eclipse中的項目屬性中。那麼它應該工作。 – Sreekar

回答

0

經過幾天,眼淚和血液,我的教授(博士丹尼爾Brake)搞明白了!這是我們做的工作。我希望你永遠需要使用這個庫在Windows機器上(CONF:視窗10,MinGW的是,Eclipse):

  • 請確保您有MinGW的安裝管理器,對安裝的基本設置所有的包,而在「全包」,尋找「MSYS-zlib的」類DLL
  • 現在打開命令行(視窗+ X,A,在管理員模式下打開)
  • 你要打開「msys.bat」 ,去C:\MinGW\msys\1.0\msys.bat
  • 這將打開一個類unix終端,然後鍵入:
    • mingw-get install libz-dev
    • cd /path/to/libpng/folder
    • ./configure -prefix=/mingw
    • make
    • make install
  • 谷歌PNG ++,下載它,並使用MinGW的終端去包含它的文件夾:
    • cd /path/to/png++/folder
    • tar -zxf png++-0.2.x.tar.gz -C
  • 在PNG ++頁,去http://savannah.nongnu.org/bugs/?46312和donwnload文件的PNG文件夾++
  • 更換error.hpp文件
  • 使用文本編輯器打開錯誤。HPP文件,你剛下載
  • 添加#include <sstream>到包括
  • 認準部分和評論吧:

    strerror_r(errnum, buf, ERRBUF_SIZE); return std::string(buf);

  • 現在,在上述相同的塊補充一點: std::stringstream ss; ss << errnum; return ss.str();
  • 保存並關閉
  • 現在,打開Eclipse,爲png ++創建項目
  • 轉到Conf配置> C/C++編譯>設置配置爲「Debug [Active]」
  • 然後C/C++ Build> Settings> GCC C++編譯器,添加到「包含路徑(-l)」,文件夾png ++的路徑和路徑到包含文件的文件夾png.h,在我的情況下,它位於「C:\ MinGW \ msys \ 1.0 \ mingw \ include」
  • 轉到MinGW C++鏈接器>庫,添加到「庫(-l)」只是單詞「png」和「Library seach path(-L)」指向libpng.a文件夾的路徑,在我的情況下爲「C:\ MinGW \ msys \ 1.0 \ mingw \ lib」
  • 保存
  • 要使用它,請在標題中添加#include <png.hpp>(不是#include <png++/png.hpp>
  • 它會有警告,你可以忽略它
  • 它不工作!
  • 在您的MinGW終端中,轉到具有「eclipse.exe」的文件夾並以這種方式打開Eclipse(不要問我,我的教授說了一些關於路徑的信息,我不知道爲什麼) 也許你可以只需使用另一個編譯器,但我不能,或者使用Linux。
0

好的。您需要逐個檢查您的設置。

  • 它(png ++)是一個C++庫,因此您必須在您的 運行/調試設置中設置C++編譯器。
  • 將您的庫包含文件夾添加到該編譯器的設置
  • 要實際鏈接到庫,需要將.lib/.a文件或DLL添加到鏈接器設置。

我對Eclipse CDT的用戶並不多,但這就是它的工作原理。如果你想在沒有C++經驗的情況下進行圖像處理,我建議你使用python/Java,它們很容易使用。