В настоящее время я пытаюсь скомпилировать файл С++ с помощью кода Visual Studio, и я попытался отредактировать файл c_cpp_properties.json
, добавив включаемые папки в переменную includePath
, и файл tasks.json
, добавив аргументы, но я все еще не могу скомпилировать, это дает мне эту ошибку:
ССЫЛКА: фатальная ошибка LNK1104: не удается открыть «SDL2.lib»
Вот файлы:
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:\\vclib\\include\\",
"C:\\vclib\\SDL2_image-2.0.5\\include\\"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
}
],
"version": 4
}
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"/IC:\\vclib\\include",
"/IC:\\vclib\\SDL2_image-2.0.5\\include",
"${file}",
"SDL2.lib", "SDL2main.lib", "SDL2_image.lib",
"/link /LIBPATH:C:\\vclib\\lib\\x64;C:\\vclib\\SDL2_image-2.0.5\\lib\\x64",
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
ОБНОВЛЕНИЕ: второй файл теперь выглядит так:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}",
"SDL2.lib", "SDL2main.lib","SDL2_image.lib",
"/IC:\\vclib\\include",
"/IC:\\vclib\\SDL2_image-2.0.5\\include",
"/link /LIBPATH:C:\\vclib\\lib\\x86", "/LIBPATH:C:\\vclib\\SDL2_image-2.0.5\\lib\\x86",
"/SUBSYSTEM:CONSOLE"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Теперь у меня есть эта ошибка:
SDL2main.lib(SDL_windows_main.obj): ошибка LNK2019: внешний символ не разрешен __imp__CommandLineToArgvW@8, на который ссылается функция _main_getcmdline
c_cpp_properties.json
не влияет на компиляцию. - person Alan Birtles   schedule 07.09.2020Shell32.lib
, но я подозреваю, что этого будет достаточно. только ошибки ссылки могут сказать вам, что вам нужно. - person metablaster   schedule 07.09.2020c_cpp_properties.json
управляет только intellisense, командные строки вtasks.json
выполняют компиляцию - person Alan Birtles   schedule 07.09.2020