GTKMM:简单的示例无法编译:GTKMM.H:没有此类文件或目录
gtkmm: Simple example fails to compile: gtkmm.h: No such file or directory
我正在通过GTKMM文档进行工作。我开始尝试编译"简单示例"。这是代码。也可以在这里找到。
/// SimpleExample.cpp
#include <gtkmm.h>
int main(int argc, char *argv[])
{
auto app =
Gtk::Application::create(argc, argv,
"org.gtkmm.examples.base");
Gtk::Window window;
window.set_default_size(200, 200);
return app->run(window);
}
我试图使用
对此进行编译g++ SimpleExample.cpp -o SimpleExample `pkg-config gtkmm-3.0 --cflags --libs`
应该根据文档工作。(请参阅链接页面的结尾。(
运行pkg-config gtkmm-3.0 --cflags --libs
生产
Package gtkmm-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtkmm-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtkmm-3.0' found
我正在经营Debian 9 Stretch。我用
安装了gtkmm
sudo apt update && sudo apt install libgtkmm-3.0-dev
运行find /usr -name "gtkmm"
产生
/usr/lib/x86_64-linux-gnu/pkgconfig/gtkmm-3.0.pc
/usr/lib/x86_64-linux-gnu/gtkmm-3.0
/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include/gtkmmconfig.h
/usr/include/gtkmm-3.0
/usr/include/gtkmm-3.0/gtkmm
/usr/include/gtkmm-3.0/gtkmm.h
那么为什么示例不编译?
更新:
新终端
pkg-config gtkmm-3.0 --cflags --libs
Package gtkmm-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtkmm-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtkmm-3.0' found
尝试
find /usr -name "*gtkmm-3.0*"
/usr/lib/x86_64-linux-gnu/pkgconfig/gtkmm-3.0.pc
/usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1.1.0
/usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
/usr/lib/x86_64-linux-gnu/gtkmm-3.0
/usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so
/usr/share/doc/libgtkmm-3.0-1v5
/usr/share/doc/libgtkmm-3.0-dev
/usr/include/gtkmm-3.0
导出位置
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig"
重新运行
pkg-config gtkmm-3.0 --cflags --libs
Package xproto was not found in the pkg-config search path.
Perhaps you should add the directory containing `xproto.pc'
to the PKG_CONFIG_PATH environment variable
Package 'xproto', required by 'xau', not found
(这次是一个不同的错误。(
尝试再次找到
find /usr -name "*xproto*"
/usr/share/pkgconfig/xproto.pc
/usr/include/xcb/xproto.h
/usr/include/GL/glxproto.h
/usr/include/X11/extensions/lbxproto.h
更改导出命令
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig;/usr/share/pkgconfig"
重新运行,返回正方形1
pkg-config gtkmm-3.0 --cflags --libs
Package gtkmm-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtkmm-3.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtkmm-3.0' found
问题解决(分类(
我从阅读这个问题中发现了应该将路径分离出来。
export PKG_CONFIG_PATH="/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/share/pkgconfig"
但是,这并不能解决为什么根本需要设置此变量的问题。使用pkg-config
是因为它应该使编译更简单,但是,这并不比手动指定包含路径更简单,因为需要设置多个环境变量。
此外,在线缺乏有关此问题的信息使我怀疑这是大多数用户不遇到的问题,因此可能是Debian 9的特定问题。问题,以及在什么操作系统上。(
首先,安装GTKMM有点复杂是正常的。据我所知,在Stackoverflow论坛中,许多用户在此方面有问题。即使是Windows操作系统中的用户也会面临错误消息,如果他们试图将GTKMM与Visual Studio一起使用,以开发一个独立的平台应用程序...但是您的问题。有很多选择可能出错。一个简单的解释是,必须安装debian软件包" libgtk-3-dev",该软件包用于在C中创建GTK 应用程序,因为GTKMM使用此软件包。因此,第一步是尝试,它是GTK 工作的C SourceCode的编辑。第二个解释是,Debian的"包装管理器"一般而言,因此切换Linux发行版将是一个很好的建议。例如,在Fedora中,简单的dnf install gtk3 gtk3-devel gtkmm30 gtkmm30-devel
足以启动编程。
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- gtkmm 显示文件内容
- C++ gtkmm:文件选择器对话框不适用于任何驱动器
- GTKMM:简单的示例无法编译:GTKMM.H:没有此类文件或目录
- 如何在文件.cpp gtkmm中声明小部件
- 生成文件gtkmm;collect2.exe:错误:ld返回1退出状态
- 更正 CMakeLists.txt gtk、gtkmm 和 opencv 的文件
- 将非本地数据/媒体文件与C++应用程序 (gtkmm) 一起使用
- 如何将文件拖放到哪个 GTKMM 图像小部件
- Ubuntu 11.10上gtkmm-3.0中缺少文件application.h
- GTKmm:对文件中的图像进行编码