gtkmm编译错误

Compilation error with gtkmm

本文关键字:错误 编译 gtkmm      更新时间:2023-10-16

我正在尝试使用gtkmm在eclipse上编译一个简单的helloworld程序,并通过mingw32使用mingw32进行编译。

我按照以下说明"安装"gtkmm:https://wiki.gnome.org/Projects/gtkmm/MSWindows

我也读了很多关于这个主题的线程,但不明白为什么我不能编译这个简单的程序:

#include <gtkmm.h>
int main(int argc, char** argv)
{
auto app = Gtk::Application::create(argc, argv);
Gtk::Window window;
window.set_default_size(600,400);
return app->run(window);
}

通过eclipse IDE,我使用了

项目=>属性=>C/C++构建=>设置=>pkg配置

并且我启用了gtkmm-3.0。然后我编译并得到错误:

Info: Configuration "Debug" uses tool-chain "MinGW GCC" that is unsupported on this system, attempting to build anyway.
Info: Internal Builder is used for build
g++ -I/mingw32/include/gtkmm-3.0 -I/mingw32/lib/gtkmm-3.0/include -I/mingw32/include/atkmm-1.6 -I/mingw32/include/gdkmm-3.0 -I/mingw32/lib/gdkmm-3.0/include -I/mingw32/include/giomm-2.4 -I/mingw32/lib/giomm-2.4/include -I/mingw32/include/pangomm-1.4 -I/mingw32/lib/pangomm-1.4/include -I/mingw32/include/glibmm-2.4 -I/mingw32/lib/glibmm-2.4/include -I/mingw32/include/gtk-3.0 -I/mingw32/include/cairo -I/mingw32/include -I/mingw32/include/pango-1.0 -I/mingw32/include/atk-1.0 -I/mingw32/include/cairomm-1.0 -I/mingw32/lib/cairomm-1.0/include -I/mingw32/include/pixman-1 -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/sigc++-2.0 -I/mingw32/lib/sigc++-2.0/include -I/mingw32/include/gdk-pixbuf-2.0 -I/mingw32/includ -O0 -g3 -Wall -c -fmessage-length=0 -std=c++11 -o main.o "..\main.cpp" 
..main.cpp:1:19: fatal error: gtkmm.h: No such file or directory
compilation terminated.

奇怪的是,我可以在编译日志中看到它包含了这个程序所需的一切。

我也试着加入

项目=>属性=>C/C++构建=>设置=>工具设置=>gcc++编译器和mingw链接器

pkg-config gtkmm-3.0 --cflags --libs的结果,但我得到了完全相同的错误。

我花了两天的时间阅读并尝试我在各地找到的相同命题,但没有得到结果。所以,请有人帮我找到一种方法,让这个简单的例子发挥作用。

非常感谢(ps:对不起我的错误)

我遇到了同样的问题,我通过手动添加所有要包含的路径(Project Prorepties>C/C++Build>Settings>GCC C++Compiler>Includes>include Paths(-I))来解决它:

"C:msys64mingw32includegtkmm-3.0"
"C:msys64mingw32libgtkmm-3.0include"
"C:msys64mingw32includeglibmm-2.4"
"C:msys64mingw32libglibmm-2.4include"
"C:msys64mingw32includeglib-2.0"
"C:msys64mingw32libglib-2.0include"
"C:msys64mingw32includesigc++-2.0" 
"C:msys64mingw32libsigc++-2.0include"  
"C:msys64mingw32includegiomm-2.4" 
"C:msys64mingw32libgiomm-2.4include"  
"C:msys64mingw32includegdkmm-3.0"  
"C:msys64mingw32libgdkmm-3.0include"
"C:msys64mingw32includepangomm-1.4"  
"C:msys64mingw32includegtk-3.0"  
"C:msys64mingw32includepango-1.0" 
"C:msys64mingw32libpangomm-1.4include" 
"C:msys64mingw32includecairo"  
"C:msys64mingw32includegdk-pixbuf-2.0" 
"C:msys64mingw32includecairomm-1.0"  
"C:msys64mingw32includefreetype2"   
"C:msys64mingw32includeatkmm-1.6"   
"C:msys64mingw32includeatk-1.0" 
"C:msys64mingw32includegtkmm-3.0" 
"C:msys64mingw32includeglibmm-2.4"

(您应该将"C:\msys64\mingw32"替换为您的mingw32路径)

另外添加-std=c++11标志(Project Prorepties>C/C++Build>Settings>GCC C++Compiler>Miscellaneous>Other flags)和

glibmm-2.4
gtkmm-3.0

到(Project Prorepties>C/C++Build>Settings>MinGW C++Linker>Libraries(-l))