我刚刚开始编程C ++,首先是ms Visual C ++,然后是Code :: Blocks。
问题是在我的计算机上,运行Ubuntu,Code :: Blocks“开箱即用”不会调试,即使是默认的“hello world”,它只是跳过所有断点并完成程序。
我有一台使用Sun的VirtualBox的虚拟化Windows机器,我放在那里的窗口的Code :: Blocks非常“开箱即用”!。
ubuntu上的程序,在我尝试调试时显示: 找不到名为“a / b / c”的命名空间,类,结构或联合的成员 其中a / b / c是我正在构建的程序的路径。
调试器日志中显示的内容:
建立以确保来源是最新的
建成功了
选择目标:
调试
添加源目录:/ home / arnau / Documents / UNI / compus / Code :: Blocks / opo /
添加源目录:/ home / arnau / Documents / UNI / compus / Code :: Blocks / opo /
添加文件:bin / Debug / opo
启动调试器:
完成了
注册新类型:wxString
注册新类型:STL String
注册新类型: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或'”/ home / arnau / Documents / UNI / compus / Code :: Blocks / opo / main .cpp:8
(注意引用单引号。)
程序正常退出。
调试器以状态0
感谢您的时间,我真的很感激。
Arnau,来自巴塞罗那
答案 0 :(得分:4)
您对源目录的命名:.../Code::Blocks/...
是最不幸的。
虽然UNIX允许文件名中的任何字符,但'/'
和NUL
除外,使用':'
是不明智的,因为那是PATH
分隔符,你会无法添加例如/home/arnau/Documents/UNI/compus/Code::Blocks/opo
的{{1}}。
在PATH
中,GDB
还有两个含义 - 文件名和行号(或函数名称)之间的分隔符,和 ':'
as范围指标(处理'::'
所需)。
摘要:将C++
目录重命名为"Code::Blocks"
,并且过上幸福的生活。