【问题标题】:Compilation error with gtkmmgtkmm 编译错误
【发布时间】:2016-09-20 14:56:21
【问题描述】:

我正在尝试使用 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我使用了

project=>properties=>C/C++build=>settings=>pkg-config

我启用了 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.

奇怪的是,我可以在编译日志中看到它包含该程序所需的所有内容。

我也试过添加

project=>properties=>C/C++build=>settings=>工具设置=> gcc c++ 编译器和mingw链接器

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

我花了 2 天时间阅读和尝试我在各处发现的相同命题,但无法得到结果。 所以请有人可以帮助我找到一种方法来让这个简单的例子工作。

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

【问题讨论】:

    标签: c++ eclipse mingw gtkmm msys


    【解决方案1】:

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

    "C:\msys64\mingw32\include\gtkmm-3.0"
    "C:\msys64\mingw32\lib\gtkmm-3.0\include"
    "C:\msys64\mingw32\include\glibmm-2.4"
    "C:\msys64\mingw32\lib\glibmm-2.4\include"
    "C:\msys64\mingw32\include\glib-2.0"
    "C:\msys64\mingw32\lib\glib-2.0\include"
    "C:\msys64\mingw32\include\sigc++-2.0" 
    "C:\msys64\mingw32\lib\sigc++-2.0\include"  
    "C:\msys64\mingw32\include\giomm-2.4" 
    "C:\msys64\mingw32\lib\giomm-2.4\include"  
    "C:\msys64\mingw32\include\gdkmm-3.0"  
    "C:\msys64\mingw32\lib\gdkmm-3.0\include"
    "C:\msys64\mingw32\include\pangomm-1.4"  
    "C:\msys64\mingw32\include\gtk-3.0"  
    "C:\msys64\mingw32\include\pango-1.0" 
    "C:\msys64\mingw32\lib\pangomm-1.4\include" 
    "C:\msys64\mingw32\include\cairo"  
    "C:\msys64\mingw32\include\gdk-pixbuf-2.0" 
    "C:\msys64\mingw32\include\cairomm-1.0"  
    "C:\msys64\mingw32\include\freetype2"   
    "C:\msys64\mingw32\include\atkmm-1.6"   
    "C:\msys64\mingw32\include\atk-1.0" 
    "C:\msys64\mingw32\include\gtkmm-3.0" 
    "C:\msys64\mingw32\include\glibmm-2.4"
    

    (你应该用你的 mingw32 路径替换“C:\msys64\mingw32”)

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

    glibmm-2.4
    gtkmm-3.0
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多