2013-12-20 3591 views
0

,我發現了以下錯誤:stdafx.h中無法打開包含文件錯誤,但能夠找到的文件

"fatal error C1083: Cannot open include file" 

爲我的頭文件是一個執行#included。我已經在項目依賴關係中設置了包含和庫路徑,試圖將它們包含在其他包含部分中。最重要的是,當我右鍵點擊

#include <BCGCBProInc.h> 

它能夠打開文件並顯示給我。所以它可以找到並打開文件,但給我的錯誤。我在Windows 7上使用VS2012,標題位於項目的不同位置。

我在做什麼錯誤/不正確?

+0

哪個編譯/平臺? – Sean

+0

@Sean:我使用VS2012,所以無論使用哪種C++ MFC編譯器 Jonathan:我不明白你的意思 – Katianie

+0

它也可能是一個路徑問題。我的意思是操作系統可能包含一些不屬於系統包含路徑的其他頭文件。 – drescherjm

回答

0

我不得不做的就是它編譯爲改變

#include "BCGCBProInc.h" 

這個

#include "C:\Program Files (x86)\BCGSoft\BCGControlBar Professional Evaluation\BCGCBPro\BCGCBProInc.h" 

我不知道爲什麼,因爲我包含在VC++目錄的路徑。當我瀏覽路徑時,它將(x86)更改爲%29x86%29,這正是我搞砸它的原因,但事實並非如此,因爲我手動將其更改回(x86)。

我的計劃是,當我最終得到我需要的東西得到完成,我會帶來庫和包括到項目在當地並作出相對

+2

'%28x86%29'應該不是VC的問題。 – alk

+0

我製作了我的回答是因爲這有助於編譯。上面的答案非常有用,並且在試圖使其起作用時很重要。 – Katianie

2

1.

#include <BCGCBProInc.h> 

是不一樣的

2.

#include "BCGCBProInc.h" 

不同搜索pathes適用於包括文件的兩個變體。

的pathes擡頭使用的是那些被定義爲默認的搜索pathes像

  • /usr/include爲IXish系統
  • $(VCInstallDir)include稱爲VC++目錄爲VC

使用的pathes變體1時當使用2.是通過選項-I(用於VC的/I)添加的那些。

+0

這有幫助,但我試過,但仍然是相同的錯誤 – Katianie

+1

我儘量做到這一點,但Visual Studio似乎並不在乎。至少達到VS2012。 – drescherjm

+0

要永遠做什麼? @drescherjm – alk

1

在Visual Studio中的路徑,用鼠標右鍵單擊您的項目,然後選擇屬性。在左側窗格中選擇VC++目錄選項,然後在右側窗格中查看包含目錄和庫目錄。確保他們使用相對路徑而不是絕對路徑。如果它們必須是絕對路徑,那麼您運行此項目的每臺機器必須具有完全相同的路徑。絕對路徑是這樣的:

D:/Development/MyProject/includes 

相對路徑可以使用$(PROJECTDIR),使其相對於項目的完成,或者$(SolutionDir),使其相對於溶液(如與項目不同),並會是這個樣子:

$(ProjectDir)../includes 

$(SolutionDir)includes 
+0

是的,我最終會這樣做,但現在我不想複製所有的答案。 h文件和庫文件夾放到項目文件夾中,直到我真正擁有了我想要的工作 – Katianie

+1

夠用了,它似乎可能是它創建的機器上的路徑與機器上的路徑不匹配。無論是哪種情況,您將所需文件移動到具有相對路徑的本地目錄的計劃都應該解決它。 – derpface

相關問題