Переместите объектный файл в другой каталог с помощью MSVC

#opengl #visual-c #vscode-tasks

Вопрос:

Я использую Microsoft Visual C для компиляции своего проекта в VSCode. Есть мои задачи.файл json.

 {
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C  : cl.exe build active file",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",

                "/I${workspaceFolder}\Dependencies\GLFW\include",
                "/I${workspaceFolder}\Dependencies\GLEW\include",
                
                "opengl32.lib", "user32.lib", "gdi32.lib",
                "shell32.lib", "kernel32.lib", "msvcrt.lib", "msvcmrt.lib",
                "${workspaceFolder}\Dependencies\GLFW\lib-vc2019\glfw3.lib",
                "${workspaceFolder}\Dependencies\GLEW\lib\Release\x64\glew32s.lib",

                "/nologo",
                
                "/Fe:",
                "${workspaceFolder}\build\source.exe",
                "${workspaceFolder}\OpenGL\src\*.cpp"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": "build",
            "detail": "compiler: cl.exe"
        }
    ]
}
 

Когда я компилирую свой проект, у меня есть 3 файла source.exe, source.ilk, source.pdb в «${workspaceFolder}сборка» и 2 файла source.obj, vc140.pdb в «${workspaceFolder}OpenGLsrc».
изображение 1
Я хочу, чтобы 2 файла источника.объект, vc140.идгу «${workspaceFolder}построить», как мне это сделать.
Другой вопрос, я создаю «шейдер.H» и «Shader.cpp» на «${workspaceFolder}с OpenGL\ ЦСИ», каталог «source.cpp» когда я скомпилировать мой проект, у меня есть еще один «шейдер.параметр obj» на «${workspaceFolder}с OpenGLНИЦ».
изображение 2
Как я могу переместить весь файл obj в «${workspaceFolder}build».
Большое спасибо!

Комментарии:

1. Возможно, вы ищете /Fo вариант компилятора. Он задает каталог для промежуточных файлов, в том числе файлов .obj. И /Fd для файла .pdb.

2. Я решил проблему с /Fo и /Fd, но я получил много предупреждений о ссылках 4217. Спасибо, @IgorTandetnik.

3. Ну, в сообщении для этого предупреждения говорится: «Удалите __declspec(dllimport) модификатор, чтобы устранить это предупреждение». Вы пробовали разрешить предупреждение таким образом?

4. Но я использую статическую библиотеку и определил GLEW_STATIC в верхней части source.cpp.