linux下C++程序开发
1.编辑,生成源文件(.cpp)
vi hello.cpp
2.编译,生成目标文件(.o)
g++ -c hello.cpp 产生一个hello.o文件
3.连接,生成执行文件(.EXE)
g++ -o hello hello.o
g++ hello.o -o hello
一步到位:
g++ -Wall hello.cpp -o hello
------------------------------------
gdb debug:
sum.cpp:
1.一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:
g++ -Wall -g sum.cpp -o sum
用法:
(gdb) l <-------------------- l命令相当于list,从第一行开始例出原码。
(gdb)break 16 <-------------------- 设置断点,在源程序第16行处。
(gdb)break func <-------------------- 设置断点,在函数func()入口处。
break ... if <condition>
...可以是上述的参数,condition表示条件,在条件成立时停住。比如在循环境体中,可以设置break if i=100,表示当i为100时停住程序。
(gdb) info break <-------------------- 查看断点信息
(gdb) r <--------------------- 运行程序,run命令简写
(gdb) n <--------------------- 单条语句执行,next命令简写。
(gdb) c <--------------------- 继续运行程序,continue命令简写。
(gdb) p i <--------------------- 打印变量i的值,print命令简写。
(gdb) finish <--------------------- 退出函数。
(gdb) q <--------------------- 退出gdb。
(gdb) help
(gdb) help breakpoints
1.编辑,生成源文件(.cpp)
vi hello.cpp
2.编译,生成目标文件(.o)
g++ -c hello.cpp 产生一个hello.o文件
3.连接,生成执行文件(.EXE)
g++ -o hello hello.o
g++ hello.o -o hello
一步到位:
g++ -Wall hello.cpp -o hello
------------------------------------
gdb debug:
sum.cpp:
#include<iostream>
using namespace std;
int sum(int num)
{
int total = 0,i;
for(i=0;i<=num;i++)
{
total += i;
}
return total;
}
int main()
{
int s;
s = sum(100);
cout << "Sum : " << s << endl;
}
1.一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点。如:
g++ -Wall -g sum.cpp -o sum
用法:
(gdb) l <-------------------- l命令相当于list,从第一行开始例出原码。
(gdb)break 16 <-------------------- 设置断点,在源程序第16行处。
(gdb)break func <-------------------- 设置断点,在函数func()入口处。
break ... if <condition>
...可以是上述的参数,condition表示条件,在条件成立时停住。比如在循环境体中,可以设置break if i=100,表示当i为100时停住程序。
(gdb) info break <-------------------- 查看断点信息
(gdb) r <--------------------- 运行程序,run命令简写
(gdb) n <--------------------- 单条语句执行,next命令简写。
(gdb) c <--------------------- 继续运行程序,continue命令简写。
(gdb) p i <--------------------- 打印变量i的值,print命令简写。
(gdb) finish <--------------------- 退出函数。
(gdb) q <--------------------- 退出gdb。
(gdb) help
(gdb) help breakpoints