我目前正在尝试用gtkmm编写一个简单的程序,但是当我尝试编译它时遇到了问题。我有几个简单的文件: main.cc,它只包含主函数,test.cc和test.h,它们定义了一个基于Gtk::Window的类,其中有一对按钮,最后还有一个简单的makefile。
当我尝试编译makefile时,出现了问题,它返回:
In file included from main.cc:2:
test.h:12: fatal error: gtkmm.h: No such file or directory如果我随后用#include <gtkmm-2.4/gtkmm.h>替换#include <gtkmm.h>,它将返回错误:
In file included from test.h:12,
from main.cc:2:
/usr/include/gtkmm-2.4/gtkmm.h:87: fatal error: glibmm.h: No such file or directory我已经寻找了一段时间的解决方案,并在网上四处寻找,但对于其他有类似问题的用户来说,这是由于他们的makefile中没有包含pkg-config --cflags --libs gtkmm-2.4造成的。不幸的是,这不是我的问题的根源,因为我一直都有这个问题。
最奇怪的是,当我不使用makefile时,它可以正常工作。如果我从main.cc中提取主函数并将其放入test.cc文件中,则键入:
g++ test.cc -o output `pkg-config --cflags --libs gtkmm-2.4`在控制台中,它工作得很好。这只是一个临时的修复,因为我已经到了需要拥有多个类的地步。我不知道这是不是make或gtkmm的安装有问题,我已经尝试重新安装了这两个,但都没有用。我不知道还能试什么。
最后,如果有用的话,我正在运行Ubuntu10.10,带有g++版本4.4.5
感谢您的帮助
makefile如下所示:
main: main.o
@echo "Main"
@g++ -g main.cc test.o -o output `pkg-config --cflags --libs gtkmm-2.4`
test.o:
@echo "Test"
@g++ test.cc -o test.o `pkg-config --cflags --libs gtkmm-2.4`
clean:
@clear
@rm -f *.o发布于 2014-11-18 21:34:55
我也遇到过同样的问题,我已经通过将pkg-config gtkmm-3.0 --cflags --libs添加到构建的两个步骤(编译和链接)中解决了这个问题。我的makefile:
CC=g++
CFLAGS=-c -Wall
LDFLAGS=
SOURCES=WatsonGui.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=watsonGui
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@ `pkg-config gtkmm-3.0 --libs`
.cpp.o:
$(CC) $(CFLAGS) $< -o $@ `pkg-config gtkmm-3.0 --cflags`
clean:
rm -rf *.o watsonGui 请注意,pkg-config使用的引号类型很重要,如果您使用‘而不是’它不起作用。
附言:我是sure文件的新手,所以我不太确定我做了什么。
发布于 2011-06-25 01:35:22
此错误:
/usr/include/gtkmm-2.4/gtkmm.h:87: fatal error: glibmm.h: No such file or directory`建议您必须将glibmm-2.4添加到pkg-config搜索:
main: main.o
@echo "Main"
@g++ -g main.cc test.o -o output `pkg-config --cflags --libs gtkmm-2.4 glibmm-2.4`
test.o:
@echo "Test"
@g++ test.cc -o test.o `pkg-config --cflags --libs gtkmm-2.4 glibmm-2.4`
clean:
@clear
@rm -f *.ohttps://stackoverflow.com/questions/6442550
复制相似问题