【发布时间】:2015-09-29 22:24:54
【问题描述】:
为了在 Windows 上使用 MinGW 构建 //working// C++/gtkmm-3.0 应用程序,我已经奋斗了一个月。我终于设法让库、MinGW 和 Codeblocks 在 Windows XP (VirtualBox) 上相处融洽。但是,当我尝试构建时,出现以下错误。
这些是 gtkmm-3.0 和依赖项的最新版本。我通过 MSYS2 获得了它们,尽管由于未知原因我无法在该环境中构建。因此,正如经常推荐的那样,我将它们复制到 MinGW /lib 和 /include 目录,并确保 pkg-config 可以找到它们。一切都很好(据称)。
显然,这些问题并非源自我的代码。我没有编写或修改 gtkmm。然而,我不能让这些消失。
值得一提的是,我最后一次收到与“找不到 glib::ustring::ustring”有关的错误,它决定停止抱怨,而是突然给我这些。如果之前的消息再次出现,我会在这里发布。
我开始认为在 Windows 上发布这个软件根本不值得。
注意:我得到了超过 50 个,全部在 gtkmm-3.0 及其依赖库中,都来自 main 的第 1 行或第 2 行,并且都具有完全相同的细节。我将只展示一些对空间感兴趣的内容。
-------------- Build: Debug in infiltrator (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -std=c++11 -Wall -mms-bitfields -pthread -IC:/dev/MinGW/include/glibmm-2.4 -IC:/dev/MinGW/lib/glibmm-2.4/include -IC:/dev/MinGW/include/sigc++-2.0 -IC:/dev/MinGW/lib/sigc++-2.0/include -IC:/dev/MinGW/include/glib-2.0 -IC:/dev/MinGW/lib/glib-2.0/include -IC:/dev/MinGW/include/gtkmm-3.0 -IC:/dev/MinGW/lib/gtkmm-3.0/include -IC:/dev/MinGW/include/atkmm-1.6 -IC:/dev/MinGW/include/giomm-2.4 -IC:/dev/MinGW/lib/giomm-2.4/include -IC:/dev/MinGW/include/pangomm-1.4 -IC:/dev/MinGW/lib/pangomm-1.4/include -IC:/dev/MinGW/include/gtk-3.0 -IC:/dev/MinGW/include/cairomm-1.0 -IC:/dev/MinGW/lib/cairomm-1.0/include -IC:/dev/MinGW/include/gdk-pixbuf-2.0 -IC:/dev/MinGW/include/gdkmm-3.0 -IC:/dev/MinGW/lib/gdkmm-3.0/include -IC:/dev/MinGW/include/atk-1.0 -IC:/dev/MinGW/include/pango-1.0 -IC:/dev/MinGW/include/cairo -IC:/dev/MinGW/include/pixman-1 -IC:/dev/MinGW/include -I/mingw32/include/freetype2 -I/mingw32/include/libpng16 -I/mingw32/include/harfbuzz -I/mingw32/include/glib-2.0 -I/mingw32/lib/glib-2.0/include -I/mingw32/include -IC:/dev/MinGW/include/freetype2 -IC:/dev/MinGW/include/libpng16 -IC:/dev/MinGW/include/harfbuzz -Wl,-luuid -LC:/dev/MinGW/lib -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lgtk-3 -lglibmm-2.4 -lcairomm-1.0 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -lwinmm -lz -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lsigc-2.0 -lgobject-2.0 -lglib-2.0 -lintl -std=c++11 -Wall -g -mms-bitfields -pthread -IC:/dev/MinGW/include/glibmm-2.4 -IC:/dev/MinGW/lib/glibmm-2.4/include -IC:/dev/MinGW/include/sigc++-2.0 -IC:/dev/MinGW/lib/sigc++-2.0/include -IC:/dev/MinGW/include/glib-2.0 -IC:/dev/MinGW/lib/glib-2.0/include -IC:/dev/MinGW/include/gtkmm-3.0 -IC:/dev/MinGW/lib/gtkmm-3.0/include -IC:/dev/MinGW/include/atkmm-1.6 -IC:/dev/MinGW/include/giomm-2.4 -IC:/dev/MinGW/lib/giomm-2.4/include -IC:/dev/MinGW/include/pangomm-1.4 -IC:/dev/MinGW/lib/pangomm-1.4/include -IC:/dev/MinGW/include/gtk-3.0 -IC:/dev/MinGW/include/cairomm-1.0 -IC:/dev/MinGW/lib/cairomm-1.0/include -IC:/dev/MinGW/include/gdk-pixbuf-2.0 -IC:/dev/MinGW/include/gdkmm-3.0 -IC:/dev/MinGW/lib/gdkmm-3.0/include -IC:/dev/MinGW/include/atk-1.0 -IC:/dev/MinGW/include/pango-1.0 -IC:/dev/MinGW/include/cairo -IC:/dev/MinGW/include/pixman-1 -IC:/dev/MinGW/include -I/mingw32/include/freetype2 -I/mingw32/include/libpng16 -I/mingw32/include/harfbuzz -I/mingw32/include/glib-2.0 -I/mingw32/lib/glib-2.0/include -I/mingw32/include -IC:/dev/MinGW/include/freetype2 -IC:/dev/MinGW/include/libpng16 -IC:/dev/MinGW/include/harfbuzz -Wl,-luuid -LC:/dev/MinGW/lib -lgtkmm-3.0 -latkmm-1.6 -lgdkmm-3.0 -lgiomm-2.4 -lpangomm-1.4 -lgtk-3 -lglibmm-2.4 -lcairomm-1.0 -lgdk-3 -lgdi32 -limm32 -lshell32 -lole32 -lwinmm -lz -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lsigc-2.0 -lgobject-2.0 -lglib-2.0 -lintl -std=c++11 -mms-bitfields -pthread -IC:/dev/MinGW/include/glibmm-2.4 -IC:/dev/MinGW/lib/glibmm-2.4/include -IC:/dev/MinGW/include/sigc++-2.0 -IC:/dev/MinGW/lib/sigc++-2.0/include -IC:/dev/MinGW/include/glib-2.0 -IC:/dev/MinGW/lib/glib-2.0/include -IC:/dev/MinGW/include/gtkmm-3.0 -IC:/dev/MinGW/lib/gtkmm-3.0/include -IC:/dev/MinGW/include/atkmm-1.6 -IC:/dev/MinGW/include/giomm-2.4 -IC:/dev/MinGW/lib/giomm-2.4/include -IC:/dev/MinGW/include/pangomm-1.4 -IC:/dev/MinGW/lib/pangomm-1.4/include -IC:/dev/MinGW/include/gtk-3.0 -IC:/dev/MinGW/include/cairomm-1.0 -IC:/dev/MinGW/lib/cairomm-1.0/include -IC:/dev/MinGW/include/gdk-pixbuf-2.0 -IC:/dev/MinGW/include/gdkmm-3.0 -IC:/dev/MinGW/lib/gdkmm-3.0/include -IC:/dev/MinGW/include/atk-1.0 -IC:/dev/MinGW/include/pango-1.0 -IC:/dev/MinGW/include/cairo -IC:/dev/MinGW/include/pixman-1 -IC:/dev/MinGW/include -I/mingw32/include/freetype2 -I/mingw32/include/libpng16 -I/mingw32/include/harfbuzz -I/mingw32/include/glib-2.0 -I/mingw32/lib/glib-2.0/include -I/mingw32/include -IC:/dev/MinGW/include/freetype2 -IC:/dev/MinGW/include/libpng16 -IC:/dev/MinGW/include/harfbuzz -Iinclude -IC:\dev\MinGW\include -c "C:\Documents and Settings\Jason\Desktop\infiltrator\main.cpp" -o obj\Debug\main.o
In file included from C:/dev/MinGW/include/pangomm-1.4/pangomm/fontset.h:33:0,
from C:/dev/MinGW/include/pangomm-1.4/pangomm/context.h:37,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/widget.h:32,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/actiongroup.h:29,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/application.h:32,
from C:\Documents and Settings\Jason\Desktop\infiltrator\main.cpp:2:
C:/dev/MinGW/include/pangomm-1.4/pangomm/font.h:98:11: error: looser throw specifier for 'virtual Pango::Font::~Font()'
In file included from C:/dev/MinGW/include/glibmm-2.4/glibmm/binding.h:23:0,
from C:/dev/MinGW/include/glibmm-2.4/glibmm.h:96,
from C:\Documents and Settings\Jason\Desktop\infiltrator\main.cpp:1:
C:/dev/MinGW/include/glibmm-2.4/glibmm/object.h:117:11: error: overriding 'virtual Glib::Object::~Object() noexcept (true)'
In file included from C:/dev/MinGW/include/pangomm-1.4/pangomm/context.h:37:0,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/widget.h:32,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/actiongroup.h:29,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/application.h:32,
from C:\Documents and Settings\Jason\Desktop\infiltrator\main.cpp:2:
C:/dev/MinGW/include/pangomm-1.4/pangomm/fontset.h:81:11: error: looser throw specifier for 'virtual Pango::Fontset::~Fontset()'
In file included from C:/dev/MinGW/include/glibmm-2.4/glibmm/binding.h:23:0,
from C:/dev/MinGW/include/glibmm-2.4/glibmm.h:96,
from C:\Documents and Settings\Jason\Desktop\infiltrator\main.cpp:1:
C:/dev/MinGW/include/glibmm-2.4/glibmm/object.h:117:11: error: overriding 'virtual Glib::Object::~Object() noexcept (true)'
In file included from C:/dev/MinGW/include/pangomm-1.4/pangomm/fontfamily.h:34:0,
from C:/dev/MinGW/include/pangomm-1.4/pangomm/fontmap.h:36,
from C:/dev/MinGW/include/pangomm-1.4/pangomm/context.h:38,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/widget.h:32,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/actiongroup.h:29,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/application.h:32,
from C:\Documents and Settings\Jason\Desktop\infiltrator\main.cpp:2:
C:/dev/MinGW/include/pangomm-1.4/pangomm/fontface.h:81:11: error: looser throw specifier for 'virtual Pango::FontFace::~FontFace()'
In file included from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/widget.h:41:0,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/actiongroup.h:29,
from C:/dev/MinGW/include/gtkmm-3.0/gtkmm/application.h:32,
from C:\Documents and Settings\Jason\Desktop\infiltrator\main.cpp:2:
C:/dev/MinGW/include/gtkmm-3.0/gtkmm/buildable.h:107:11: error: looser throw specifier for 'virtual Gtk::Buildable::~Buildable()'
Process terminated with status 1 (0 minute(s), 6 second(s))
50 error(s), 0 warning(s) (0 minute(s), 6 second(s))
除了 gtkmm 之外,这种类型的错误消息似乎会在 Windows 上构建的其他稳定的、工作的项目和库中弹出。
我的最佳猜测是我忘记了一些编译器标志、设置或构建过程中其他非常明显的步骤。我会赶紧提醒读者我在 CodeBlocks (13.14) 上,所以我没有自己编写那个构建命令。
要求的信息
mingw32-g++.exe --version
mingw32-g++.exe (tdm-1) 4.7.1
这是与 CodeBlocks 13.14 捆绑在一起的版本。
...
我会尽快提醒大家,我没有编写 gtkmm 或其依赖项的任何方面,这是所有这些错误的根源。此外,这是一个完全稳定的版本,而不是测试版或开发快照。其次,这个完全相同的代码在我的 Linux 版本上使用完全相同的库版本。
也就是说,这里是来自请求位置的完整代码行。
C:/dev/MinGW/include/glibmm-2.4/glibmm/object.h,第 117 行
virtual ~Object() noexcept; //It should only be deleted by the callback.
C:/dev/MinGW/include/pangomm-1.4/pangomm/font.h,第 98 行
virtual ~Font();
【问题讨论】:
-
您能否将
virtual Glib::Object::~Object()的完整声明发布在您的C:/dev/MinGW/include/glibmm-2.4/glibmm/object.h第117 行以及'virtual Pango::Font::~Font()的完整声明,因为它出现在您的C:/dev/MinGW/include/pangomm-1.4/pangomm/font.h第98 行。 -
还有
mingw32-g++.exe --version的输出 -
将该信息添加到我的问题底部。谢谢你看这个。 :)
标签: c++ windows build mingw gtkmm