簡體   English   中英

無法使用 Visual Studio 打開包含文件

[英]Cannot open include file with Visual Studio

我最近從Code::Blocks轉到了 Visual Studio,在 Code::Blocks 中可以添加一個類,然后立即包含它。 但是,每當我使用以下語句在 Visual Studio 中執行相同操作時:

#include "includedFile.h"

#include "include/includedFile.h"

它不起作用,而是出現錯誤:

無法打開包含文件:'includedFile.h'; 沒有這樣的文件或目錄。

是否有一些我必須勾選的框或設置? 還是我必須手動將每個標頭添加為依賴項?

這是相關類的代碼:

公共.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++ DirectoryAdditional 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 ,將其切換為YesNo允許解析路徑。

TL;DR :如果您有一個包含相同目錄的配置,但另一個沒有找到文件,我建議嘗試比較配置。

如果您嘗試了其他答案,但仍然找不到包含文件,這里有一些額外的調試步驟和健全性檢查:

  • 確保您正在構建一個受您的代碼支持的平台。 (如果沒有,請考慮刪除此平台作為目標)
  • 驗證文件名/路徑是否正確。 將您的源代碼修改為#include頭文件的整個絕對路徑,然后查看現在是否可以找到該文件。 如果沒有,請將源代碼中的路徑復制粘貼到命令行中,以驗證該文件是否存在於該完整路徑中且沒有拼寫錯誤。 打開頭文件以確保您具有讀取權限。 (完成后將源代碼改回。)
  • 如果您已經添加了路徑Additional Include Directories ,請嘗試單擊下拉組合框中的Additional Include Directories ,並選擇<Edit...> 這將顯示路徑的evaluated values (如果它沒有顯示正確的評估值,則您的路徑中的變量可能沒有設置。單擊Macros>>查看變量。)將評估的路徑復制粘貼到 Windows 資源管理器中以驗證路徑是否存在。
  • 創建一個新的空 C++“Windows 控制台應用程序”項目。 在 main.cpp 中只設置一個包含目錄,#include 只設置一個文件,然后看看是否可以構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM