Manjaro Linux 无法"gtkmm.h"开源文件



我最近一直在尝试用c++为GUI开发设置编码环境,但收效甚微。我使用Manjaro Linux与Visual Studio Code,但由于某种原因,当包含我知道的文件时,我似乎总是得到包含错误有。

最近,我尝试通过安装软件包和文档来安装gtkmm-4.0。我在/usr/include/中进行了双重检查,以确保包都存在,但我仍然得到包含错误:cannot open source file "gtkmm.h"gtkmm.h:No such file or directory

在这一点上,我所有的代码是:
#include <gtkmm.h>
#include <iostream>
int main(int argc, char* argv[]){
return 0;
}

Makefile:

exec = game.out
sources = $(wildcard src/*.cpp)
objects = $(sources:.cpp=.o)
flags = -g $(shell pkg-config gtkmm-4.0 --cflags)
libs = $(shell pkg-config gtkmm-4.0 --libs)

$(exec): $(objects)
g++ $(objects) $(flags) -o $(exec) $(libs)
%.o: %.cpp include/%.h
g++ -c $(flags) $< -o $@
install:
make
cp ./game.out /usr/local/bin/game
clean:
-rm *.out 
-rm *.o
-rm src/*.o

我在网上搜索了答案,但我找到的所有答案要么是针对不同的操作系统/环境,要么就是没有

@Galik和@John帮我解决了这个问题!我要做的是使用g++ src/main.cpp -o main $(pkg-config gtkmm-4.0 --cflags --libs)来编译我的代码,然后运行可执行文件。

感谢您的帮助和指导!

您需要安装pkg-config并将其添加到Makefile中的编译器标志:

flags = -g $(shell pkg-config gtkmm-2.4 --cflags)
libs = $(shell pkg-config gtkmm-2.4 --libs)
# ...
$(exec): $(objects)
g++ $(objects) $(flags) -o $(exec) $(libs)

工具pkg-config有一个支持库的正确路径的数据库。

根据您的gtkmm版本,如果您的版本是3.0,则可能需要替换gtkmm-3.0

最新更新