0

所以我正在用 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;
}

主文件

#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;
}

最后是我的makefile

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 类的名称更改为 View

4

1 回答 1

0

您忘记了;类定义末尾的 。

于 2013-01-30T06:02:25.870 回答