我正在尝试重现示例 - https://developer.gnome.org/gtkmm-tutorial/stable/sec-treeview-examples.html.en#treeview-dnd-example
编译时错误:
"make_managed" is not a member of 'Gtk' in the file treeview_withpopup.cc at the line auto item = Gtk::make_managed("_Edit", true);
Netbeans IDE 也在同一行显示错误
"Unable to resolve the identifier make_managed"
我已经从站点复制了代码,并且 gtkmm.h 包含在头文件中。
我还没有发现有人在 Stackoverflow 上问过这样的问题! 为什么我会收到此编译错误?
请帮忙。
最佳答案
Gtk::make_managed
在 gtkmm-3.0/gtkmm/object.h
中定义(参见 link)。
我已经遇到了同样的错误。然后我检查了文件 object.h
但没有 make_managed
函数。我不知道为什么。我刚从 rpm packge 安装(我使用的操作系统是 Fedora 23)。
我的解决方案:
我添加 code /usr/include/gtkmm-3.0/gtkmm/object
中的 make_managed
:
template<class T, class... T_Args>
auto make_managed(T_Args&&... args) -> T* // Note: Edited to add return type here!
{
return manage(new T(std::forward<T_Args>(args)...));
}
关于c++ - 为什么会出现编译错误, "make_managed"不是 'Gtk' 的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53334845/