The most interesting part is. Even though the files are said to be shouldn't edit, I modified them anyway. I set the correct extension for library on Windows, but Lazarus still failed to link saying it's unable to find import library. What's it trying to find and failed to find?
The dlls are in: C:\msys64\mingw64\bin
The .a import libraries are in: C:\Active\msys64\mingw64\lib
I did trial and error with all of the possible file extensions and names for the libraries. But it still failed to find and link them! So, what's really going on?
Revisit the bindings for GTK2, I found it used the correct syntax for dynamic link. The gir2pascal generated GTK3 bindings doesn't. It used the syntax for static linking (needs import library), but it uses the library name (.so.0) for dynamic linking (.so.* is dynamic library).
Update: Please note C:\msys64\mingw64\bin and C:\msys64\mingw64\lib are both added to PATH so Lazarus (FPC indeed) should be able to find the libraries!