GTKmm 你好世界编译错误

GTKmm Hello World Compile error

本文关键字:错误 编译 世界 你好 GTKmm      更新时间:2023-10-16

所以我正在用C ++制作一个基本的hello world应用程序,这是代码

视图.h

#ifndef VIEW_H
#define VIEW_H
#include <gtkmm/button.h>
#include <gtkmm/window.h>
class View : public Gtk::Window
{
    public:
        View();
        virtual ~View();
protected:
    //signal handlers
    void on_button_clicked();

    //Member Widgets
    Gtk::Button m_button;
}
#endif

查看.cpp

#include "helloWorld.h"
#include <iostream>
View::View(): m_buton("Hello World")
{
set_border_width(10);
m_button.signal_clicked().connect(sigc::mem_fun(*this, &View::on_button_clicked));
add (m_button);
m_button.show();

}
View::~View()
{
}

void View::on_button_clicked()
{
        std::cout << "Hello World" << std::endl;
}

主.cpp

#include "View.h"
#include <gtkmm/main.h>
int main (int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
View helloWorld;
Gtk::Main::run(helloWorld);
return 0;
}

最后是我的制作文件

Out: Main.o View.o
    g++ -o Out Main.o View.o `pkg-config gtkmm-3.0 --cflags --libs`
Main.o: Main.cpp View.h
    g++ -c Main.cpp `pkg-config gtkmm-3.0 --cflags --libs`
View.o: View.cpp View.h
    g++ -c View.cpp `pkg-config gtkmm-3.0 --cflags --libs`

我安装了 Gtkmm 3.0,并广泛地环顾四周寻找答案,我的错误是

g++ -c Main.cpp `pkg-config gtkmm-3.0 --cflags --libs`
In file included from /usr/include/glibmm-2.4/glibmm/optioncontext.h:27:0,
                 from /usr/include/gtkmm-3.0/gtkmm/main.h:36,
                 from Main.cpp:2:
/usr/include/glibmm-2.4/glibmm/optionentry.h:30:8: error: expected unqualified-id before string constant
make: *** [Main.o] Error 1

我该如何解决这个问题? 在我看来,在我的主方法中的某个地方触发了 gtkmm 代码的问题? 我很困惑我的代码几乎正是我在网上找到的如何做到这一点,我只是将 HelloWorld 类的名称更改为查看

您忘记了类定义末尾的;