cl.exe /I \include 被忽略

时间:2021-06-21 10:44:34

标签: visual-studio visual-c++ linker cl cl.exe

我正在尝试使用 cl.exe 和 vscode 任务编译 SDL2 程序。 出于某种原因,/I 标志被 cli 中的 cl.exe 完全忽略。 任务指定为:

    {
  "tasks": [
    {
      "type": "cppbuild",
      "label": "C/C++: cl.exe build active file",
      "command": "cl.exe",
      "args": [
        "/Zi",
        "/EHsc",
        "/nologo",
        "/Fe:",
        "${workspaceFolder}\\build\\hello.exe",
        "${workspaceFolder}\\src\\*.cpp",
        "/I C:\\Users\\stackoverflow\\path\\to\\include\\folder\\include\\",
        "/link C:\\Users\\stackoverflow\\path\\to\\include\\folder\\lib\\x86\\SDL2main.lib C:\\Users\\stackoverflow\\path\\to\\include\\folder\\lib\\x86\\SDL2.lib"
      ],
      "problemMatcher": ["$msCompile"],
      "group": {
        "kind": "build",
        "isDefault": true
      },
      "detail": "Task generated by Debugger."
    }
  ],
  "version": "2.0.0"
}

出于某种原因,如果我在代码中指定整个路径,它只会找到头文件,例如:

#include <C:\Users\stackoverflow\path\to\include\folder\include\SDL2\SDL.h>

但它给出了致命错误 C1083:无法打开包含文件:<...> 没有这样的文件或目录 当我使用:

#include <SDL2\SDL.h>

官方文档表明它应该可以工作:docs

visual studio 使用开发者 cli 时出现同样问题。 我在这里错过了什么?

更新:

当我删除 /I like so 之前的空格时它会起作用:

"/IC:\\Users\\stackoverflow\\path\\to\\include\\folder\\include",
"/linkC:\\Users\\stackoverflow\\path\\to\\include\\folder\\lib\\x86\\SDL2main.lib C:\\Users\\stackoverflow\\path\\to\\include\\folder\\lib\\x86\\SDL2.lib"

0 个答案:

没有答案