我已經使用glade設計器製作了一個GUI,並且我已經在一個類中封裝了這個功能。下面是類的定義,我已經寫了:使用gtkmm編譯gtk程序的錯誤
#ifndef _CLIPSWINDOW_H
#define _CLIPSWINDOW_H
#include <gtkmm.h>
class ClipsWindow : public Gtk::Window
{
public:
ClipsWindow(BaseObjectType * cobject, const Glib::RefPtr<Gtk::Builder> &refGlade);
~ClipsWindow();
protected:
Glib::RefPtr<Gtk::Builder> builder;
//MainWindow
Gtk::Window *main_window;
// Control buttons.
Gtk::Button *agenda_btn; // buttons to contain the control buttons in the GUI.
Gtk::Button *fact_btn;
Gtk::Button *run_btn;
Gtk::Button *reset_btn;
// Menu options.
//Gtk::MenuButton *options; // Get the options menu
Gtk::MenuItem *load_item; // Menu items for the "Options menu"
Gtk::MenuItem *save_item;
Gtk::MenuItem *change_strategy_item;
//Gtk::MenuButton *help;
Gtk::MenuItem *about_item; // Menu item for the "Help Menu"
// signal handlers for buttons.
void on_agendabtn_clicked();
void on_factbtn_clicked();
void on_runbtn_clicked();
void on_resetbtn_clicked();
// signal handlers for menu items.
void on_load_activate();
void on_StrategyOption_activate();
void on_SaveOption_activate();
void AboutItem_activate_cb();
};
#endif
主要功能如下:
Gtk::Main kit(argc,argv);
//auto app = Gtk::Application::create(argc, argv, "clipsgui.clemson.edu");
Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file("clipswindow.glade");
ClipsWindow *cw = 0;
builder->get_widget_derived("main_window", cw);
kit.run(*cw);
我已經照顧到底層的CObject傳遞給Gtk::Window
的構造。當我嘗試使用命令g++ main_app.cpp -o main
pkg-config --cflags --libs gtkmm-3.0`編譯這個程序時,我得到一個.pthread
文件,或者當試圖單獨編譯文件時,錯誤是`gtkmm no no file or directory 。不過,我已經通過創建一個小驅動程序來測試gtkmm,並且它編譯得很好。任何想法我可能做錯了什麼?
謝謝。
編輯:here是我的項目github回購。當我構建clipswindow.o
時有一個小錯誤,但錯誤仍然存在。
由於我無法重現您的錯誤。不完整的代碼,你不知道如何真正編譯你的代碼。只有猜測可以做出,並猜測你的選擇到g ++。 –
我已經爲我的代碼添加了github回購。請看看它?你怎麼編譯這個程序? –