C++、Eigen 库、#include 看不到文件/目录

问题描述 投票:0回答:1

这里是初学者,

我的#include 给出错误:没有这样的文件或目录。 我按照有关如何包含它的教程进行操作,我的结果似乎有所不同。

我的tasks.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 库发挥作用?

notes:我在论坛上寻找答案,但没有帮助。我使用Windows。我使用 VS 代码。

编辑:如果我的问题因任何原因不能令人满意,我将非常感谢您提供有关如何改进它的提示。我真诚地为此付出了努力,并试图使其尽可能简洁。

c++ eigen include-path
1个回答
0
投票

在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
,但您编写的内容与这两种可能性都不对应。
    

© www.soinside.com 2019 - 2024. All rights reserved.