User forums > Help

mingw missing libs

(1/2) > >>

Denis Mungle:
This problem keeps happening where i have the path of the variables correctly placed in the compiler settings but i cant seem to find the   -ldwmapi anywhere (this is the message):

 gcc.exe  -o bin\Debug\GTK_Demo.exe obj\Debug\main.o  -LC:/msys64/mingw64/bin/../lib -lgtk-3 -lgdk-3 -lz -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lwinmm -ldwmapi -lsetupapi -lcfgmgr32 -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl   
c:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -ldwmapi
collect2.exe: error: ld returned 1 exit status

I'm kinda new to this ide and how to use it properly any ideas? The C:/msys64/mingw64/bin/../lib path as the -ldwmapi libs on it.
I have applied `pkg-config --cflags gtk+-3.0` to other compiler options and in the linker `pkg-config --libs gtk+-3.0`

AndrewCot:
This issue is not with CB, but with the packages you are trying to build. I suggest google "libdwmapi.a" and have a read as this has occurred before and hopefully some of the results have a solution for you. Some of the results are old, so be aware of this.

This page could be the one to start with:
https://packages.msys2.org/package/msys2-w32api-runtime?repo=msys&variant=x86_64

stahta01:
Is dwmapi an DLL or a static library?

If static library, I have always used a full path to the library because I have never gotten -llibname to work with an static MSys2 library.

Edit: It appears to be a windows system DLL and not an MSys2 DLL, I have not had this problem. So, my solution may or may not work with an import library to an system DLL.

Edit2: If you attach your CB project and the c/c++ source files with the header files (as a single zip or 7z file),  I can try to build it. I have MSys2 installed.

Tim S.

stahta01:
Could not duplicate problem on my computer.

My computer uses a non standard MSys2 installation; but, that just results in a different path displayed.
My MSys2 installation used is installed in "C:\building\msys64" instead of normal "C:\msys64".

I am guessing a bad compiler toolchain setting is the cause.


--- Code: ----------------- Clean: Release in gtk_manual_setup (compiler: GNU GCC Compiler)---------------

Cleaned "gtk_manual_setup - Release"

-------------- Build: Release in gtk_manual_setup (compiler: GNU GCC Compiler)---------------

x86_64-w64-mingw32-gcc.exe -Wall -IC:/building/msys64/mingw64/bin/../include/gtk-3.0 -IC:/building/msys64/mingw64/bin/../include/pango-1.0 -IC:/building/msys64/mingw64/bin/../include -IC:/building/msys64/mingw64/bin/../include/glib-2.0 -IC:/building/msys64/mingw64/bin/../lib/glib-2.0/include -IC:/building/msys64/mingw64/bin/../include/harfbuzz -IC:/building/msys64/mingw64/bin/../include/freetype2 -IC:/building/msys64/mingw64/bin/../include/libpng16 -mms-bitfields -IC:/building/msys64/mingw64/bin/../include/fribidi -IC:/building/msys64/mingw64/bin/../include/cairo -IC:/building/msys64/mingw64/bin/../include/lzo -IC:/building/msys64/mingw64/bin/../include/pixman-1 -mms-bitfields -mms-bitfields -mms-bitfields -mms-bitfields -mms-bitfields -mms-bitfields -mms-bitfields -IC:/building/msys64/mingw64/bin/../include/gdk-pixbuf-2.0 -mms-bitfields -mms-bitfields -mms-bitfields -IC:/building/msys64/mingw64/bin/../include/atk-1.0 -mms-bitfields -mms-bitfields -mms-bitfields -pthread -mms-bitfields -O2  -c C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c -o obj/Release/main.o
C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c: In function 'main':
C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:34:3: warning: 'gtk_vbox_new' is deprecated: Use 'gtk_box_new' instead [-Wdeprecated-declarations]
   34 |   vbox = gtk_vbox_new (TRUE, 6);
      |   ^~~~
In file included from C:/building/msys64/mingw64/include/gtk-3.0/gtk/gtk.h:286,
                 from C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:2:
C:/building/msys64/mingw64/include/gtk-3.0/gtk/deprecated/gtkvbox.h:61:13: note: declared here
   61 | GtkWidget * gtk_vbox_new      (gboolean homogeneous,
      |             ^~~~~~~~~~~~
C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:37:3: warning: 'gtk_button_new_from_stock' is deprecated: Use 'gtk_button_new_with_label' instead [-Wdeprecated-declarations]
   37 |   button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);
      |   ^~~~~~
In file included from C:/building/msys64/mingw64/include/gtk-3.0/gtk/gtk.h:54,
                 from C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:2:
C:/building/msys64/mingw64/include/gtk-3.0/gtk/gtkbutton.h:103:16: note: declared here
  103 | GtkWidget*     gtk_button_new_from_stock    (const gchar    *stock_id);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:37:3: warning: 'GtkStock' is deprecated [-Wdeprecated-declarations]
   37 |   button = gtk_button_new_from_stock (GTK_STOCK_DIALOG_INFO);
      |   ^~~~~~
C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:41:3: warning: 'gtk_button_new_from_stock' is deprecated: Use 'gtk_button_new_with_label' instead [-Wdeprecated-declarations]
   41 |   button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
      |   ^~~~~~
In file included from C:/building/msys64/mingw64/include/gtk-3.0/gtk/gtk.h:54,
                 from C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:2:
C:/building/msys64/mingw64/include/gtk-3.0/gtk/gtkbutton.h:103:16: note: declared here
  103 | GtkWidget*     gtk_button_new_from_stock    (const gchar    *stock_id);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/stahta01/Documents/test/gtk_manual_setup/main.c:41:3: warning: 'GtkStock' is deprecated [-Wdeprecated-declarations]
   41 |   button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
      |   ^~~~~~
x86_64-w64-mingw32-gcc.exe  -o bin/Release/gtk_manual_setup.exe obj/Release/main.o  -LC:/building/msys64/mingw64/bin/../lib -lgtk-3 -lgdk-3 -lz -lgdi32 -limm32 -lshell32 -lole32 -Wl,-luuid -lwinmm -ldwmapi -lsetupapi -lcfgmgr32 -lpangowin32-1.0 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl  -s 
Output file is bin\Release\gtk_manual_setup.exe with size 19.00 KB
Process terminated with status 0 (0 minute(s), 1 second(s))
0 error(s), 5 warning(s) (0 minute(s), 1 second(s))
 
--- End code ---

stahta01:
My 64 bit toolchain setting for MSys2 installed in "C:\building\msys64"

Compiler installation directory: C:\building\msys64\mingw64
C compiler: x86_64-w64-mingw32-gcc.exe
C++ compiler: x86_64-w64-mingw32-g++.exe
Dyn. linker: x86_64-w64-mingw32-g++.exe
Static linker: ar.exe

The "/usr/bin" is not normally needed and you should only add it if you need it. I use the sh.exe in some projects and they need it.
Additional paths: $(TARGET_COMPILER_DIR)/../usr/bin

Tim S.



Navigation

[0] Message Index

[#] Next page

Go to full version