'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 |
