簡體   English   中英

VS 代碼無法鏈接 Windows 10 SDK 庫或包含 header 文件的問題

[英]Trouble with VS Code not linking the Windows 10 SDK libraries or included header files

我在安裝 VS Code 以編譯基本的 C++ 腳本時遇到了一些問題。

我安裝所有東西的方式(我已經多次這樣做了)是首先將 Visual Studio 安裝程序安裝到默認位置。 Once that was complete, I installed Visual Studio 2019 Community with the desktop c++ development, and c++ game development modules into their default install directories as well (These include the most recent windows 10 sdk, and C runtime environment, etc). 然后我也將 VS Code 安裝到了默認位置。

要打開 VS Code,我使用開發人員命令提示符並輸入“code”,然后按 Enter。 然后我還安裝了 Microsoft C/C++ 擴展。 我創建了一個新文件,我們稱之為“example.cpp”,其中包含以下內容:

int main()
{
    return 0;
}

當我在導航到文件的位置並運行“cl example.cpp”命令后從 VS Code 終端編譯它時,我收到以下錯誤:

LINK : fatal error LNK1104: cannot open file 'kernel32.lib'

正如我發現的那樣,這是由於 %LIB% 和 %LIBPATH% 變量沒有引用系統上安裝的 Windows 10 SDK 庫。 我已經設法通過手動設置指向正確文件夾的“LIB”和“LIBPATH”系統環境變量來解決這個問題,但是我知道這是一種非常混亂的修復方法,一旦我轉向虛幻引擎可能會搞砸. 話雖如此,在我嘗試了一個簡單的 Hello World 程序之前,我能夠毫無問題地編譯和運行上述代碼:

#include <iostream>

int main()
{
    std::cout << 'Hello World!';
    return 0;
}

編譯時在哪里產生以下錯誤:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include\yvals.h(12):
fatal error C1083: Cannot open include file: 'crtdbg.h': No such file or directory

這讓我相信 %INCLUDE% 路徑也沒有設置為指向 Windows 10 SDK 包括,為了確認這一點,我進入了開發人員命令提示符並運行了一些回顯命令,這是我的結果:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>echo %INCLUDE%
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\ATLMFC\include;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\include;

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>echo %LIBPATH%
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\ATLMFC\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\lib\x86\store\references;C:\Windows\Microsoft.NET\Framework\v4.0.30319;

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community>echo %LIB%
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\ATLMFC\lib\x86;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.25.28610\lib\x86;

據我目前所知,這些路徑應該引用 SDK 的包含文件夾,以及包含 kernel32.lib 文件的 bin 文件夾。 現在無需再次手動創建系統環境變量,我想知道是否可以在開發人員控制台中使用一個命令,將所需的 SDK 路徑添加到 %INCLUDE%、%LIB% 和 %LIBPATH% 變量中? 還是我只是在做這完全錯誤的事情?

任何和所有建議都非常感謝,如有必要,我非常樂意提供更多信息。

更新:根據要求,我的 VS Code JSON 文件。

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.18362.0",
            "compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.25.28610/bin/Hostx64/x64/cl.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "msvc-x64"
        }
    ],
    "version": 4
}

確保以管理員身份運行開發人員命令提示符。

暫無
暫無

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

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