Мой #include <Eigen/Dense>
выдает ошибку: Нет такого файла или каталога.
Я следовал инструкциям о том, как его включить, но мой результат оказался другим.
Мои задачи.json:
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-I C:\\Users\\press\\projects\\helloworld\\eigen-3.4.0\\"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
Мой c_cpp_properties.json:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"C:\\Users\\press\\projects\\helloworld\\eigen-3.4.0\\"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "C:\\msys64\\ucrt64\\bin\\gcc.exe",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
Насколько я могу судить, мой фактический путь к каталогу правильный, я приложил скриншот.
Как заставить работать библиотеку Eigen?
Примечания: Я искал ответы на форумах, но это не помогло. Я использую Windows. Я использую код VS.
Правки: Если мой вопрос по какой-либо причине неудовлетворителен, я был бы очень признателен за советы о том, как его улучшить. Я искренне приложил к этому усилия и постарался сделать это как можно более кратким.
В Tasks.json
"-I C:\\Users\\press\\projects\\helloworld\\eigen-3.4.0\\"
должно быть либо
"-IC:\\Users\\press\\projects\\helloworld\\eigen-3.4.0\\"
или
"-I",
"C:\\Users\\press\\projects\\helloworld\\eigen-3.4.0\\"
Каждый элемент args
должен быть одним аргументом. Аргументы разделяются пробелами, поэтому их не следует помещать внутри аргумента. Если вы сделаете это (как вы это сделали), VSCode выйдет из пробела и больше не сможет разделять два аргумента. Вместо этого вы получаете один аргумент со встроенным пробелом.
Компилятор, который вы используете, принимает либо один аргумент -Ipath
, либо два аргумента -I path
, но то, что вы написали, не соответствует ни одному из этих вариантов.