2014-01-23 69 views
0

我想包含一個頭文件。我正在C++環境中工作(C++ 11,Windows操作系統,Netbeans 7.3.1 IDE,Cygwin_4.x工具集合)。我不知道如何設置環境/ IDE(我在6個月前完成)。我不瞭解C++構建過程或Cygwin相關問題的基本原理,所以我可能需要填補其他一些參考資料/文檔(具體而言,我不確定)的差距。沒有這樣的文件(頭文件)錯誤

我的最終目標是能夠使用不需要完整文件路徑的語法包含頭文件。我想簡短寫的東西,如:

#include "src\stuff\blah.h" //or even better: #include "blah.h" 

我可以讓我的程序使用完整的文件路徑,這樣編譯所有的唯一途徑:

#include "C:\NetBeansProjects\Project1\src\stuff\blah.h" 

而且,我可以只能使用完整路徑編譯一次。如果我嘗試重建,它會彈出*** multiple target patterns. Stop.錯誤。有這個錯誤的解決方法;那些是1)刪除每個重建之間的builddist文件夾(yike?),或者2)following this 16 step setup process

我不想遵循這些解決方法之一,因爲它們看起來並不能提供我想要的。如何設置我的環境以實現我想要的功能...能夠在不使用完整路徑的情況下包含頭文件?

+1

編譯器很可能從正在編譯的文件開始搜索包含文件。您試圖在「src」中編譯的源代碼是什麼?如果是這樣,include應該是'#include'stuff/blah.h「'。還要注意正斜槓。 – DanielKO

+0

我從來沒有使用netbeans,但如果沒有辦法將目錄添加到包含搜索路徑,我會感到震驚。如果很多(或全部)包含文件在同一個地方,那就是要走的路。 – jerry

+0

@DanielKO - 項目中的所有項目(所有.cc和.h文件)都位於「src」目錄下,但隨後會使用子目錄(例如stuff)對其進行進一步排序。在這種特殊情況下,我在一個子目錄(src/stuff)中有一個文件試圖包含來自另一個子目錄(src/morestuff)的文件。另外,正斜槓不起作用(error ='stuff/blah.h - 沒有這樣的文件或目錄)。 – nairware

回答

1

感謝DanielKO這個答案。

在我的情況,我能夠與語法包括:

#include "../stuff/blah.h" 

我沒有配置爲C++編譯器的「代碼幫助」部分下任何東西。

我的所有代碼都在我的NetBeans項目中的父目錄「src」下。看起來文件的完整路徑不是必需的,唯一必須引用的目錄是最低級別的子目錄(在我的情況下是「stuff」)。

1

在NetBeans中我已經添加了路徑庫列表:

  1. 進入屬性 - >選擇C++ - >選擇「包括圖書館」 - >「添加」 現在:添加路徑與選擇項目文件夾「絕對」

  2. 進入屬性 - >的選擇C++ - >選擇「附加庫目錄」 - >「添加」 現在:增加項目文件夾的路徑與選擇「絕對」

這對我來說很晦澀,爲什麼項目不能識別「自己」的頭文件。

相關問題