Gtkmm编译错误
Gtkmm compiling error
操作系统:Windows 7
编译器:MinGW
IDE:代码:
我刚刚在我的电脑上安装了Gtkmm在文件夹C:/Gtkmm/,并设置了一个示例程序。当我编译它时,它给出了错误"gtkmm.h: No such file or directory"
我尝试将PATH变量设置为C:/gtkmm/include和C:/gtkmm/gtkmm-2.4,但都不起作用。然后我尝试使用#include "C:/gtkmm/include/gtkmm-2.4/gtkmm.h",这只是给出了大量的错误,说它不知道几十个文件在哪里。
我还听说你需要把pkg-config gtkmm-2.4 --cflags --libs
放在编译器选项中,但这也不起作用。
我做错了什么,我如何解决它?
pkg-config是一个辅助函数,用于在编译器行中添加cflags和lib路径。
您需要做的是将库和cflags路径添加到编译器行。我不是100%确定如何在代码::块中做到这一点。尽管
在ubuntu 11.04中,你需要所有这些来编译一个简单的gtkmm程序:
Libs (pkg-config——Libs gtkmm-2.4:
-pthread -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lm -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0
cflags paths (pkg-config——cflags gtkmm-2.4):
-I/usr/include/atk-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/gio-unix-2.0/ -I/usr/include/gtkmm-2.4 -I/usr/lib/gtkmm-2.4/include -I/usr/include/atkmm-1.6 -I/usr/include/giomm-2.4 -I/usr/lib/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/pangomm-1.4/include -I/usr/include/gtk-2.0 -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gdkmm-2.4 -I/usr/lib/gdkmm-2.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/glibmm-2.4/include -I/usr/include/sigc++-2.0 -I/usr/lib/sigc++-2.0/include -I/usr/include/cairomm-1.0 -I/usr/lib/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/lib/gtk-2.0/include -I/usr/include/gdk-pixbuf-2.0
基本上你必须将/usr/include/
和/usr/lib/
的每个实例都更改为c:path-to-library
我不确定在使用MinGW时需要多少以上内容,但是在Linux上使用GCC时,删除它们中的任何一个都会使gtkmm程序无法编译。希望至少能让你走上正确的道路。
PATH变量是什么意思?全局窗口搜索可执行文件的路径?这是错误的。
你需要在你的IDE中查找Include search path
或header search path
或类似的东西。
当您在命令行上执行pkg-config命令时,它是否为您工作?这样的pkg-config在unix系统上使用时被括在反引号中,这导致它被它的输出所替换。不知道您的IDE是否可以做到这一点,但如果它从命令行工作,您至少有一个所需的所有包含的列表。
使用autotools c++项目。您只需要编辑两个文件configure.ac
和Makefile.am
。将这行添加到configure.ac
PKG_CHECK_MODULES([GTKMM], [gtkmm-3.0])
和Makefile.am
program_CPPFLAGS = $(GTKMM_CFLAGS)
program_LDADD = $(GTKMM_LIBS)
- 用MacOS Mojave编译C++:致命错误:mpi.h:没有这样的文件或目录
- std::is_base_of表示ctor编译错误
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- Qt5:使用QCommandLineParser类时出现奇怪的编译错误
- Qt Cmake 错误编译"GuiSupportQt not found"
- Opengl 精度转换错误编译错误 E0415
- 库将ARM架构错误编译为架构X64
- RT 音频 Mac 错误 g++ 编译错误
- 错误编译Boost.log
- 错误编译QT创建者 / QT窗口小部件示例
- 错误编译MIPS32
- Visual Studio 2013 中的错误(编译和运行代码)
- 链接错误编译qt项目在visual 2010
- 无法用模板错误编译nsgmls
- 奇怪的错误.编译失败
- 如果有人调用c++中的方法,则强制错误(编译时)
- 来自autoconf测试的错误编译命令
- 时间限制超出错误C++编译
- SFML 2.3 和 CodeBlocks 错误编译