私は隙間デザイナーを使って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);
私はGtk::Window
のコンストラクタに基礎となるのCObjectを渡すために世話をしてきました。 g++ main_app.cpp -o main
pkg-config --cflags --libs gtkmm-3.0``コマンドを使ってこのプログラムをコンパイルしようとすると、私は.pthread
ファイルを取得するか、ファイルを個々にコンパイルしようとすると、そのgtkmmファイルまたはディレクトリはありません。しかし、私は小さなドライバプログラムを作成することによってgtkmmをテストしました。私は間違って何をしているのだろうか?
ありがとうございました。
EDIT:hereは私のプロジェクトのgithubレポです。 clipswindow.o
をビルドすると小さなエラーが発生しますが、エラーは引き続き発生します。
私はエラーを再現できません。コードが不完全で、実際にコードをコンパイルする方法が不明です。推測のみが可能で、推測するとg ++のオプションをチェックします。 –
私のコードにgithub repoを追加しました。それを見てください?どのようにプログラムをコンパイルしていますか? –