我目前正在嘗試用gtkmm編寫一個簡單的程序,但是當我嘗試編譯它時遇到了問題。我有幾個簡單的文件:main.cc,它只包含主函數,test.cc和test.h,它們定義了一個基於類的Gtk :: Window以及一對按鈕,最後是一個簡單的makefile。問題與makefile和gtkmm
,當我嘗試編譯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中的main函數放到我的test.cc文件中,然後輸入:
g++ test.cc -o output `pkg-config --cflags --libs gtkmm-2.4`
進入控制檯,它工作正常。這只是一個臨時性的解決辦法,因爲我正要到達需要多個班級的地步。我不知道這是否是安裝make或gtkmm的問題,並嘗試重新安裝兩者,都無濟於事。我不知道還有什麼要嘗試。
最後,如果它可以幫助我運行Ubuntu 10.10,與G ++版本4.4.5
感謝您的幫助
生成文件如下:
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
如果您發佈makefile的代碼或編譯器調用的輸出,可能會有幫助,因此我們可以看到編譯器的調用方式。 – Grizzly
第二什麼@Grizzly說,除非你發佈你的makefile的內容,否則我們無法提供幫助。 – Mark
'gtkmm.h'和'glibmm.h'在'/ usr/include/gtkmm-2.4 /'中? – Beta