[英]Visual Studio Cannot open include file; No such file or directory
[英]Cannot open include file with Visual Studio
我最近從Code::Blocks轉到了 Visual Studio,在 Code::Blocks 中可以添加一個類,然后立即包含它。 但是,每當我使用以下語句在 Visual Studio 中執行相同操作時:
#include "includedFile.h"
或
#include "include/includedFile.h"
它不起作用,而是出現錯誤:
無法打開包含文件:'includedFile.h'; 沒有這樣的文件或目錄。
是否有一些我必須勾選的框或設置? 還是我必須手動將每個標頭添加為依賴項?
這是相關類的代碼:
#pragma once
class Public
{
public:
static const int SCREEN_WIDTH=1000;
static const int SCREEN_HEIGHT=1250;
Public(void);
~Public(void);
};
公共.cpp:
#include "Public.h"
Public::Public(void)
{
}
Public::~Public(void)
{
}
它是如何被包括在內的:
#include "Public.h"
我遇到了同樣的問題,例如從 gcc 到 Visual Studio 進行 C 編程。 確保您的包含文件確實在目錄中——而不僅僅是顯示在 VS 項目樹中。 對於我在其他語言中復制到項目樹中的文件夾確實會將文件移入。使用 Visual Studio 2010,粘貼到“頭文件”中並沒有將 .h 文件放在那里。
請檢查您的實際目錄是否存在包含文件。 將其放入項目/解決方案資源管理器中的“頭文件”文件夾是不夠的。
轉到您的項目屬性(項目 -> 屬性 -> 配置屬性 -> C/C++ -> 常規)並在字段附加包含目錄中添加到您的 .h 文件的路徑。
並確保您的配置和平台是活動的。 示例:配置:活動(調試)平台:活動(Win32)。
您需要設置預處理器的路徑以搜索這些包含文件,如果它們不在項目文件夾中。
您可以在VC++ Directory或Additional Include Directories 中設置路徑。 兩者都可以在項目設置中找到。
默認情況下,Visual Studio 在項目所在的文件夾 ($ProjectDir) 和默認標准庫目錄中搜索標頭。 如果你需要包含一些沒有放在你的項目目錄中的東西,你需要添加文件夾的路徑來包含:
轉到您的項目屬性(項目 -> 屬性 -> 配置屬性 -> C/C++ -> 常規)並在字段Additional Include Directories
添加到您的 .h 文件的路徑。
您也可以按照 Chris Olen 的建議,將路徑添加到 VC++ 目錄字段。
我發現這篇文章是因為我在 Microsoft Visual C++ 中遇到了同樣的錯誤。 (雖然看起來它的原因與上面發布的問題有點不同。)
我已將文件放置在同一目錄中,我試圖將其包含在內,但仍然找不到。
我的包含看起來像這樣: #include <ftdi.h>
但是當我把它改成這樣: #include "ftdi.h"
然后它找到了。
如果您的問題仍然存在,那肯定是因為您正在嘗試編譯與當前設置不同的版本。
例如,如果您在Debug x64 中設置了Additional Include Directories
,請確保使用相同的配置進行編譯。
檢查這個: Build > Configuration Manager... >
在您的活動解決方案配置中可能有這樣的東西: Debug x86 (Win32) platform
。
對我來說,它有助於鏈接項目當前目錄:
在屬性 -> C++ -> 常規窗口中,而不是將路徑鏈接到“附加包含目錄”中的文件。 放“.” 並取消選中“從父級或項目默認值繼承”。
希望這會有所幫助。
我也在這里嘗試了其他答案,但我的問題與包含路徑或文件丟失不正確的#include
無關。 我有兩個配置,每個配置都設置為完全相同的包含目錄。 一種配置可以解決包含,另一種不能。
選擇我的項目並轉到 Project -> Properties 后,我通過 Configuration 下拉列表 -> Multiple Configurations... 選項選擇了兩個配置。 比較兩者我發現 C/C++ -> Language -> Conformance Mode 是不同的。 由於某種原因,“不正確”配置的值為Default
,將其切換為Yes
或No
允許解析路徑。
TL;DR :如果您有一個包含相同目錄的配置,但另一個沒有找到文件,我建議嘗試比較配置。
如果您嘗試了其他答案,但仍然找不到包含文件,這里有一些額外的調試步驟和健全性檢查:
#include
頭文件的整個絕對路徑,然后查看現在是否可以找到該文件。 如果沒有,請將源代碼中的路徑復制粘貼到命令行中,以驗證該文件是否存在於該完整路徑中且沒有拼寫錯誤。 打開頭文件以確保您具有讀取權限。 (完成后將源代碼改回。)Additional Include Directories
,請嘗試單擊下拉組合框中的Additional Include Directories
,並選擇<Edit...>
這將顯示路徑的evaluated values
。 (如果它沒有顯示正確的評估值,則您的路徑中的變量可能沒有設置。單擊Macros>>
查看變量。)將評估的路徑復制粘貼到 Windows 資源管理器中以驗證路徑是否存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.