C++11 gtkmm对某些gtk::builder函数的未定义引用从文件添加
我正在使用eclipse、mingw-w64、gtkmm2.4和glade来编译一些简单的程序 我可以编译hello world gtkmm示例,遵循一个教程,但是当谈到glade时,出现了一些奇怪的未定义错误 编译并顺利运行的程序,这是gtkmm 2.24简单示例教程C++11 gtkmm对某些gtk::builder函数的未定义引用从文件添加,c++11,compilation,stdstring,gtkmm,gcc5,C++11,Compilation,Stdstring,Gtkmm,Gcc5,我正在使用eclipse、mingw-w64、gtkmm2.4和glade来编译一些简单的程序 我可以编译hello world gtkmm示例,遵循一个教程,但是当谈到glade时,出现了一些奇怪的未定义错误 编译并顺利运行的程序,这是gtkmm 2.24简单示例教程 #包括 #包括 使用名称空间std; int main(int argc,char*argv[]) { Gtk::主套件(argc、argv); Gtk::窗口窗口; Gtk::Main::run(*窗口); 返回0; } 然
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
Gtk::主套件(argc、argv);
Gtk::窗口窗口;
Gtk::Main::run(*窗口);
返回0;
}
然而,当我尝试运行glade章节(24.2.1)中的另一个简单示例时,事情并没有成功
例如:
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
Gtk::主套件(argc、argv);
//Gtk::Window;//我将其更改为适合glade示例
Gtk::Window*Window;//我更改了示例中的这一行
////////////////这一部分基本上是从示例中复制出来的//////
Glib::RefPtr refBuilder=Gtk::Builder::create();
尝试
{
refBuilder->add_from_file(“something.glade”);//这是有问题的行。
}
catch(const Glib::FileError&ex)
{
似乎解决了这个问题
在开始时放置#定义_GLIBCXX_使用_cx11_ABI 0
,因为我使用的是gcc 5
#include <gtkmm.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
Gtk::Window window;
Gtk::Main::run(*window);
return 0;
}
#include <gtkmm.h>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
//Gtk::Window window; //I changed it to fit with the glade example
Gtk::Window* window; //I changed this line from the example
//////////////// this part was pretty much just copied out from the example//////
Glib::RefPtr<Gtk::Builder> refBuilder = Gtk::Builder::create();
try
{
refBuilder->add_from_file("something.glade"); //this is the line with problem.
}
catch(const Glib::FileError& ex)
{
std::cerr << "FileError: " << ex.what() << std::endl;
return 1;
}
catch(const Gtk::BuilderError& ex)
{
std::cerr << "BuilderError: " << ex.what() << std::endl;
return 1;
}
refBuilder->get_widget("window1", window);
//////////////// end of copied out from the example//////
Gtk::Main::run(*window);
return 0;
}