2009-10-24 70 views
1

我剛開始編程C++,首先在ms Visual C++中,然後在Code :: Blocks中。使用gdb在Ubuntu上用Code :: Blocks進行調試的問題

問題是,在我的電腦上運行Ubuntu,Code :: Blocks「開箱即用」並不會調試,即使是默認的「hello world」,它也會跳過所有斷點並完成程序。

我有一個虛擬化的Windows機器,使用Sun的VirtualBox,並且我放在那裏的窗口的Code :: Blocks運行得非常好「開箱即用」!

ubuntu上的程序,顯示了這個當我嘗試調試:找不到命名空間的成員,類,結構或聯合命名爲 「A/B/C」,其中A/B/C是我正在建設的程序的路徑是。

這是在調試器日誌顯示的內容:


建設,以確保來源是跟上時代的
構建成功
選擇目標:
調試
添加源文件目錄:/家庭/ arnau/Documents/UNI/compus/Code :: Blocks/opo/
添加源目錄:/ home/arnau/Documents/UNI/compus/Code :: Blocks/opo/
添加文件:bin/Debug/opo
啓動調試器:

註冊新的類型:wxString
註冊新的類型:STL字符串
註冊新的類型:STL矢量
設置斷點
調試器名和版本:GNU GDB 6.8 Debian的

找不到名爲「/home/arnau/Documents/UNI/compus/Code::Blocks/opo/main.cpp:8」的名稱空間,類,結構或聯合成員
提示:嘗試「」/ home /arnau/Documents/UNI/compus/Code::Blocks/opo/main.cpp:8 or'「/home/arnau/Documents/UNI/compus/Code::Blocks/opo/main.cp p:8
(注意單引號)
程序正常退出。
調試完成了狀態0


謝謝您的時間,我真的很感激。

Arnau,從巴塞羅那

回答

4

你的源目錄的命名:.../Code::Blocks/...是最不幸的。

雖然UNIX允許文件名的任何字符,除了'/'NUL,是不明智的使用':',因爲那是一個PATH分隔符,你就不能添加例如/home/arnau/Documents/UNI/compus/Code::Blocks/opo到您的PATH

GDB有的':'兩個附加的含義 - 文件名和行號(或函數名),'::'作爲範圍指示符(用於處理C++必需的)之間的分隔符。

摘要:將"Code::Blocks"目錄重命名爲codeblocks,從此過上幸福快樂的生活。