我正在尝试编译以下简单的文件(演示代码从一个教程网站),但gtkmm.h是找不到尽管安装了。
$ cat rngtk1.cpp
#include <iostream>
#include <gtkmm.h>
int
main( int argc, char* argv[] ){
try {
Gtk::Main m( argc, argv ) ;
Gtk::Window win ;
m.run( win ) ;
}
catch( std::exception const & exc ) {
std::cout << exc.what() << std::endl ;
exit( -1 ) ;
}
exit( 0 ) ;
}在给出编译命令时:
$ g++ rngtk1.cpp
rngtk1.cpp:2:10: fatal error: gtkmm.h: No such file or directory
2 | #include <gtkmm.h>
| ^~~~~~~~~
compilation terminated.更改为"gtkmm.h“无济于事
安装了以下show相关包:
$ pacman -Ss gtkmm
mingw32/mingw-w64-i686-gtkmm 2.24.5-2
C++ bindings for gtk2 (mingw-w64)
mingw32/mingw-w64-i686-gtkmm3 3.24.1-1
C++ bindings for gtk3 (mingw-w64)
mingw64/mingw-w64-x86_64-gtkmm 2.24.5-2
C++ bindings for gtk2 (mingw-w64)
mingw64/mingw-w64-x86_64-gtkmm3 3.24.1-1 [installed] <<<<<<<<<<<<<<<<< NOTE
C++ bindings for gtk3 (mingw-w64)
$ pacman -Ss gtk3
mingw32/mingw-w64-i686-gtk3 3.24.10-3
GObject-based multi-platform GUI toolkit (v3) (mingw-w64)
mingw32/mingw-w64-i686-gtkmm3 3.24.1-1
C++ bindings for gtk3 (mingw-w64)
mingw32/mingw-w64-i686-spice-gtk 0.37-1
GTK3 widget for SPICE clients (mingw-w64)
mingw64/mingw-w64-x86_64-gtk3 3.24.10-3 [installed] <<<<<<<<<<<<<<<<< NOTE
GObject-based multi-platform GUI toolkit (v3) (mingw-w64)
mingw64/mingw-w64-x86_64-gtkmm3 3.24.1-1 [installed] <<<<<<<<<<<<<<<<< NOTE
C++ bindings for gtk3 (mingw-w64)
mingw64/mingw-w64-x86_64-spice-gtk 0.37-1
GTK3 widget for SPICE clients (mingw-w64)问题在哪里?如何解决?
发布于 2019-09-23 18:07:11
包的包含文件不在默认搜索路径中。您需要通过编译器标志-I提供它们。因为它们很多,所以对我来说在MSYS2中工作的最简单的方法是使用pkg-config,它将输出编译和链接所需的所有标志:
g++ $(pkg-config --cflags gtkmm-3.0) -c rngtk1.cpp -o rngtk1.o
g++ rngtk1.o $(pkg-config --libs gtkmm-3.0) -o rngtk1.exehttps://stackoverflow.com/questions/58040980
复制相似问题