Проблема с VS Code, не связывающим библиотеки Windows 10 SDK или включенные файлы заголовков - PullRequest
0 голосов
/ 07 мая 2020

У меня возникают проблемы с установкой VS Code для компиляции даже базового c C ++ скрипта.

Я все установил (и делал это несколько раз) сначала установка установщика Visual Studio в расположение по умолчанию. Как только это было завершено, я установил Visual Studio 2019 Community с настольными модулями разработки на C ++, а также с модулями разработки игр на C ++ в их каталоги установки по умолчанию (в их число входят самые последние windows 10 sdk и C среда выполнения и т.д. 1031 *). Затем я установил VS Code в расположение по умолчанию.

Чтобы открыть VS Code, я использую командную строку разработчика и набираю «код», затем нажимаю Enter. Затем я также установил расширение Microsoft C / C ++. Я создал новый файл, назовем его 'example. cpp', который содержит следующее:

int main()
{
    return 0;
}

Когда я компилирую его из терминала VS Code после перехода к местоположению файла и запуска 'cl example. cpp ', я получаю следующую ошибку:

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

Как я обнаружил, это связано с тем, что переменные% LIB% и% LIBPATH% не ссылаются на библиотеки Windows 10 SDK установлен в системе. Мне удалось обойти это, вручную установив переменные системной среды LIB и LIBPATH, указывающие на правильные папки, однако я знаю, что это довольно беспорядочный способ исправить это и может все испортить, когда я перейду к движку Unreal . При этом я смог скомпилировать и запустить приведенный выше код без проблем, пока я не попробовал простую программу 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;

Насколько мне известно, в этих путях должна быть ссылка на папку include SDK, а также на папки bin, содержащие файл kernel32.lib. Теперь, не создавая вручную переменные системной среды снова, мне интересно, есть ли команда, которую я могу использовать в консоли разработчика, которая добавит пути SDK, необходимые для переменных% INCLUDE%,% LIB% и% LIBPATH%? Или я просто ошибаюсь?

Любые советы более чем приветствуются, и я более чем рад предоставить дополнительную информацию, если это необходимо.

Обновление: по запросу, мой код VS 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
}

1 Ответ

0 голосов
/ 08 мая 2020

Убедитесь, что вы запускаете командную строку разработчика от имени администратора.

...