'Compile GTK+ application in vscode on windows

I'm trying to compile as the title says, but I get the following error, which I of course understand, but don't know how to solve.

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "gcc windows",
            "command": "gcc.exe",
            "args": [
                "-IC:/Apps/msys64/mingw64/include/gtk-4.0",
                "-IC:/Apps/msys64/mingw64/include/pango-1.0",
                "-IC:/Apps/msys64/mingw64/include",
                "-IC:/Apps/msys64/mingw64/include/glib-2.0",
                "-IC:/Apps/msys64/mingw64/lib/glib-2.0/include",
                "-IC:/Apps/msys64/mingw64/include/harfbuzz",
                "-IC:/Apps/msys64/mingw64/include/freetype2",
                "-IC:/Apps/msys64/mingw64/include/libpng16",
                "-IC:/Apps/msys64/mingw64/include/fribidi",
                "-IC:/Apps/msys64/mingw64/include/cairo",
                "-IC:/Apps/msys64/mingw64/include/lzo",
                "-IC:/Apps/msys64/mingw64/include/pixman-1",
                "-IC:/Apps/msys64/mingw64/include/gdk-pixbuf-2.0",
                "-IC:/Apps/msys64/mingw64/include/graphene-1.0",
                "-IC:/Apps/msys64/mingw64/lib/graphene-1.0/include",
                "-mfpmath=sse",
                "-msse",
                "-msse2",
                "-mms-bitfields",
                "-LC:/Apps/msys64/mingw64/lib",
                "-lgtk-4",
                "-lpangowin32-1.0",
                "-lpangocairo-1.0",
                "-lpango-1.0",
                "-lharfbuzz",
                "-lgdk_pixbuf-2.0",
                "-lcairo-gobject",
                "-lcairo",
                "-lgraphene-1.0",
                "-lgio-2.0",
                "-lgobject-2.0",
                "-lglib-2.0",
                "-lintl",
                "-o",
                "${workspaceFolder}/build/biofeedback-scrimali.exe",
                "${workspaceFolder}/src/main.c"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        }
    ]
}

compilation output

C:/Apps/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lpangowin32-1: No such file or directory
C:/Apps/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find .0: No such file or directory
C:/Apps/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lpangocairo-1: No such file or directory
C:/Apps/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find .0: No such file or directory
...

As you can see the dot in -lpangowin32-1.0 causes issues. How do I solve this?


EDIT:

Files in project: https://imgur.com/a/Zy1zsoM



Solution 1:[1]

Solved it. Dot is an operator in powershell, so I need to put a --% (stop-parsing symbol) before any option to gcc. Moreover I need to change some order in the options. This is the correct order:

"args": [
            "--%",
            "-IC:/Apps/msys64/mingw64/include/gtk-4.0",
            "-IC:/Apps/msys64/mingw64/include/pango-1.0",
            "-IC:/Apps/msys64/mingw64/include",
            "-IC:/Apps/msys64/mingw64/include/glib-2.0",
            "-IC:/Apps/msys64/mingw64/lib/glib-2.0/include",
            "-IC:/Apps/msys64/mingw64/include/harfbuzz",
            "-IC:/Apps/msys64/mingw64/include/freetype2",
            "-IC:/Apps/msys64/mingw64/include/libpng16",
            "-IC:/Apps/msys64/mingw64/include/fribidi",
            "-IC:/Apps/msys64/mingw64/include/cairo",
            "-IC:/Apps/msys64/mingw64/include/lzo",
            "-IC:/Apps/msys64/mingw64/include/pixman-1",
            "-IC:/Apps/msys64/mingw64/include/gdk-pixbuf-2.0",
            "-IC:/Apps/msys64/mingw64/include/graphene-1.0",
            "-IC:/Apps/msys64/mingw64/lib/graphene-1.0/include",
            "-mfpmath=sse",
            "-msse",
            "-msse2",
            "-mms-bitfields",
            "${workspaceFolder}/src/main.c",
            "-LC:/Apps/msys64/mingw64/lib",
            "-lgtk-4",
            "-lpangowin32-1.0",
            "-lpangocairo-1.0",
            "-lpango-1.0",
            "-lharfbuzz",
            "-lgdk_pixbuf-2.0",
            "-lcairo-gobject",
            "-lcairo",
            "-lgraphene-1.0",
            "-lgio-2.0",
            "-lgobject-2.0",
            "-lglib-2.0",
            "-lintl",
            "-o",
            "${workspaceFolder}/build/biofeedback-scrimali.exe",
        ],

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 user3621272