Мне интересно, как clang работает в системе Windows.
Я следовал руководству по на этом сайте и успешно собрал бинарный файл.
вотмой вопрос.
Когда я собираю проект в режиме отладки, он делает .exe, .pdb, .ilk.
Отладка также работает нормально, но когда я вхожу в какую-то функцию (например: std :: vector<> :: push_back), он находит векторный исходный файл в VisualStudio.
Я думаю, он не должен находить исходный файл, потому что реализация push_back должна принадлежать libclang.
Почему это происходит?
Код тестирования ниже
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
и команда построения
C:/Program Files/LLVM/bin/clang++.exe' -std=c++2a ./example_1.cpp -o example_1.exe --debug
FYI В моей системе установлены VisualStudio 2015 и LLVM 9.0,Конфигурация кода против
/* c_cpp_properties.json */
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:/Program Files/LLVM/include/llvm-c",
"C:/Program Files/LLVM/include/clang-c"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "8.1",
"compilerPath": "\"C:/Program Files/LLVM/bin/clang++.exe\"",
"cStandard": "c11",
"cppStandard": "c++20",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}
/* launch.json */
{
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/example_1.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true
}
]
}
}
/* tasks.json */
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "clang++.exe build active file",
"command": "C:/Program Files/LLVM/bin/clang++.exe",
"args": [
"-std=c++2a",
"./example_1.cpp",
"-o",
"example_1.exe",
"--debug"
],
"group": "build"
}
]
}