Я только что установил MSYS2, следуя руководству по установке VS Code, и могу успешно скомпилировать код с помощью g++. Однако, когда я пытаюсь запустить его, я постоянно сталкиваюсь с ошибкой сегментации. Вот что я вижу в журнале отладчика:
#include
using namespace std;
int main(){
coutПуть к C:\msys64\ucrt64\bin является первой записью в моей пользовательской и системной переменных PATH, поэтому он должен отдавать приоритет версии MSYS2.< /li>
[/list]
[b]Кто-нибудь знает, как я могу предотвратить эту ошибку, не удаляя вручную файл .dll из других каталогов?[/b]
Я нашел обходной путь, когда создайте файл launch.json, все работает:
[code]{
"version": "0.2.0",
"configurations": [
{
"name": "Run C++",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file",
"miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe"
}
]
}
Это все исправляет, и я больше не получаю ошибок. Нужно ли мне это для каждой задачи? Должна быть возможность запуска без необходимости создавать это каждый раз.
Я только что установил MSYS2, следуя руководству по установке VS Code, и могу успешно скомпилировать код с помощью g++. Однако, когда я пытаюсь запустить его, я постоянно сталкиваюсь с ошибкой сегментации. Вот что я вижу в журнале отладчика: [code]Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded. Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded. Loaded 'C:\Windows\System32\ucrtbase.dll'. Symbols loaded. Loaded 'D:\Programme\Python\Library\mingw-w64\bin\libstdc++-6.dll'. Symbols loaded. ... Thread 1 received signal SIGSEGV, Segmentation fault. 0x000000006fcae829 in ?? () from D:\Programme\Python\Library\mingw-w64\bin\libstdc++-6.dll [/code] Это код для тестирования: [code]#include using namespace std;
int main(){ coutПуть к C:\msys64\ucrt64\bin является первой записью в моей пользовательской и системной переменных PATH, поэтому он должен отдавать приоритет версии MSYS2.< /li> [/list] [b]Кто-нибудь знает, как я могу предотвратить эту ошибку, не удаляя вручную файл .dll из других каталогов?[/b] Я нашел обходной путь, когда создайте файл launch.json, все работает: [code]{ "version": "0.2.0", "configurations": [ { "name": "Run C++", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++.exe build active file", "miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe" } ] } [/code] Это все исправляет, и я больше не получаю ошибок. [b]Нужно ли мне это для каждой задачи? Должна быть возможность запуска без необходимости создавать это каждый раз.[/b]