![](/img/trans.png)
[英]gtkmm.h cannot open source file (but works with pkg-config flags when compiled)
[英]Manjaro Linux cannot open source file "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;
}
生成文件:
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,則取決於您的版本,如果您有gtkmm-3.0
版本,您可能需要替換3.0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.