2010-06-04 134 views
3

我使用VS2010(通過dreamspark下載),雖然我可以通過右鍵單擊並打開文檔打開#include文件,它抱怨「錯誤不能開源文件「...」「這似乎相當荒謬。我使用QWT使用Qt這陣子,我專門爲有問題:錯誤無法打開源文件「...」

#include <qwt_counter.h> 
#include <qwt_plot.h> 

(我現在用的是「<>」);不知道如何讓這些代碼在上面的代碼中正確顯示。

在此先感謝。

+2

嘗試用'「filename」替換''。這與鏈接無關。 – 2010-06-04 14:17:39

+0

試過之前,但沒有工作= /我不知道這是什麼問題與赫爾,對此感到遺憾。 – Cenoc 2010-06-04 14:23:42

回答

9

尼爾指出,嘗試使用引號,而不是文件名周圍的<>字符。使用引號時,MSVC將查找與指定文件#include所在的文件相同的目錄,如果未找到,則將查找包含路徑指定的目錄。當文件名被<>字符包圍時,不會查看當前文件的目錄 - 編譯器會直接轉到包含路徑。

詳情請參閱http://msdn.microsoft.com/en-us/library/36k2cdd4.aspx

請注意,這是一個實現相關行爲 - 它可能不適用於其他編譯器。

如果沒有幫助,確保您的包含路徑中包含該文件通過適當地設置「包含目錄」的酒店,位於目錄:

最後,您可能正在使用makefile項目(我不確定Qt項目在從VS構建時如何繼續使用qmake),在這種情況下,您需要執行make文件中所需的任何配置( s)或在調用makef的命令行上傳遞的參數爾斯。

+0

我正在使用cmake;這在過去是相當可靠的? – Cenoc 2010-06-04 14:58:15

+1

@Cenoc:這不是一個真正的可靠性問題 - 這是一個配置問題。如果VS使用的是makefile項目,它所做的只是運行啓動構建的命令行 - 之後,makefile使用makefile爲其提供的任何參數調用編譯器。那時,VS項目的配置已經不在圖片中。您應該確保cmake需要包含指定的目錄路徑才能正確完成。 – 2010-06-04 15:42:38

+0

啊,結果發現有一個循環鏈接發生,我的所有代碼都放在了一個.h文件中。拆分它並添加.cpp文件,一切工作正常。 – Cenoc 2010-06-04 16:23:44

3

這些文件所在的路徑與此源文件的路徑相同,還是包含在項目設置中的「附加包含目錄」中?

Project - > properties - > c/C++ section - > additional include directories。

如果它們位於在正在修改或源文件的子目錄中的另外的一個包括目錄(我覺得)你也可以包括他們:

#include <path_to_file_1/qwt_counter.h> 
#include <path_to_file_2/qwt_plot.h> 

[編輯] 或當然尼爾說 [/編輯]

+0

我嘗試了這兩種方法,但他們沒有工作,可悲的是......奇怪的是,Visual Studio似乎能夠找到它們,或者至少打開它們,當我要求打開文檔時它不會給出錯誤;所以它知道它在哪裏...看似... – Cenoc 2010-06-04 14:33:31

+0

我也試着移動相對於彼此的#include語句。 – Cenoc 2010-06-04 14:34:59

+0

謝謝,它爲我工作! – 2014-07-12 18:33:12

0

原來有一個循環鏈接發生,我把所有的代碼都放在了一個.h文件中。我將它分開並添加相應的.cpp文件,現在一切正常。

相關問題