Измените путь сборки для файлов obj

#visual-c #visual-studio-code #directory-structure

#visual-c #visual-studio-code #структура каталогов

Вопрос:

Недавно я скачал расширение C / C для vs code, следуя этому руководству по его настройке для Windows. Мне удалось выяснить, как изменить путь сборки для исполняемого файла, но я не могу понять, как изменить путь сборки для файлов .obj and vc140.pdb .

Это структура каталогов, которую я хотел бы получить после сборки и запуска программы: каталог

Прямо сейчас файлы .obj and vc140.pdb находятся в корне моего каталога, но я хотел бы поместить их в папку obj, как показано выше.

Это мой текущий tasks.json файл:

 {
 "version": "2.0.0",
 "tasks": [
    {
        "type": "shell",
        "label": "C/C  : cl.exe build active file",
        "command": "cl.exe",
        "args": [
            "/Zi",
            "/EHsc",
            "/Fe:",
            "${workspaceFolder}\bin\debug\${fileBasenameNoExtension}.exe",
            "${file}"
        ],
        "options": {
            "cwd": "${workspaceFolder}"
        },
        "problemMatcher": [
            "$msCompile"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        }
     }
  ]
}
  

Ответ №1:

Я нашел решение своей проблемы после просмотра аргументов командной строки для компилятора msvc

Мне пришлось добавить /Fd /Fo аргумент и, чтобы правильно настроить путь сборки для файлов pdb и. obj

Если кого-то интересует tasks.json , вот оно:

 {
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "C/C  : cl.exe build active file",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "/Fe:",
                "${workspaceFolder}\bin\debug\${fileBasenameNoExtension}.exe",
                "/Fd:",
                "${workspaceFolder}\obj\debug\vc140.pdb",
                "/Fo:",
                "${workspaceFolder}\obj\debug\${fileBasenameNoExtension}.obj",
                "${file}"
                
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}