2015-07-11 38 views
0

我用GTK2庫編寫了一個C++軟件用於UI。在Ubuntu上編寫的C++軟件中的殭屍窗口

這是一個簡單的軟件,它可以分析XML文件上的地圖,計算兩點之間的最短路徑並在圖像上繪製它(我正在使用Cairo庫)。

編譯(使用makefile)沒有給出任何錯誤,但是當我執行程序時窗口顯示爲空。如果我嘗試使用調試選項(-g)進行編譯並使用ddd執行程序以進行調試,則返回「no debugging symbols發現」。

的Makefile

CXXFLAGS += -Wall `pkg-config --cflags --libs gtk+-2.0` 
ObjectsMy = main.o interface.o callback.o map.o path.o draw.o 
NaViGaToR: DependenciesMy $(ObjectsMy) 
    g++ -g $(ObjectsMy) -o NaViGaToR `pkg-config gtk+-2.0 --cflags --libs` 
DependenciesMy: 
    g++ -MM main.cpp interface.cpp callback.cpp map.cpp path.cpp draw.cpp 
      > DependenciesMy 
-include DependenciesMy 
.PHONY: clean cleanall 
clean: 
    rm $(ObjectsMy) DependenciesMy 
    rm $ map.png 
cleanall: 
    rm $(ObjectsMy) NaViGaToR DependenciesMy 
    rm $ map.png 

你可以看到一些這方面的錯誤?

+0

你期望什麼?真的不清楚你的問題是什麼。也就是說,'rm $'似乎是錯誤的,除非make以某種方式取代它。順便說一句:如果你有C++代碼的問題,你可能想在這裏包含一個最小的例子。 –

回答

1

您正在將-g傳遞給鏈接器而不是編譯器。如果目標文件中沒有調試信息,則可執行文件中不會有任何調試信息。您需要將-g添加到CXXFLAGS

+0

非常感謝! 對不起,我的問題如此普遍,但與CX選項放入CXXFLAGS我可以調試我的程序! – AleMarx