码迷,mamicode.com
首页 > 编程语言 > 详细

Linux下 编译C++/C以及常用的几种命令(ubuntu)

时间:2015-05-25 22:29:46      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:linux   c   c++   编译   调试   

今天有学弟问我一个C的问题,本来想着用java解决一下,结果发现某些语句是不通的,后来下载安装了codeblocks,尝试的过程中总是提示没有最高的执行权限,我日......后来想到用g++来编译,无奈本人一直搞java,只好现学现卖,为大家整理了点资料看看

在编译之前我们需要在系统里安装G++ GCC,它们就是Linux下的C++/C的编译器。代码如下

安装命令:
sudo apt-get install build-essential
sudo apt-get install gcc
sudo apt-get install g++

C的编译运行

现在我们在文本编辑器里写一个C的简单的程序(好像所有学习C或者C++的书都会出现)
#include <stdio.h>
int main()
{
    printf("Hello,World!\n");
    return 0;
}

现在存盘为Hello.c,打开你的终端,并在文件当前目录输入:
gcc Hello.c -o hello   

然后在终端中输入sudo  ./hello ,你就能在终端中看到程序运行结果了。


下面来说下C++是如何编译的

写程序(不用我多说了吧)
代码:

#include <iostream>
using namespace std;
int main()
{
    cout<<"HelloWorld"<<endl;
    return 0;
}

存盘为Hello.cpp
然后使用g++命令来编译
g++ Hello.cpp -o hello


多文件的编译:这里给出三个源文件Hello.h, Hello.cpp, MyFirst.cpp

//file_NO1:Hello.h
class Hello {     
public:
      Hello();
     int Display();
};
//file_NO2:Hello.cpp
#include <iostream>
#include "Hello.h"
using namespace std;
Hello::Hello()
{
}
int Hello::Display()
{
    cout<<"Hello,World!\n"<<endl;
     return 0;
}
//file_NO3:MyFirst.cpp
#include <iostream>
#include "Hello.cpp"
int main()
{
    Hello theHello;
    theHello.Display();
    return 0;
}

在g++中有一个参数-c 可以只编译不连接,那么我们就可以按如下顺序编译文件,
代码:

g++ -c Hello.cpp -o Hello.o
g++ -c MyFirst.cpp -o MyFirst.o
g++ MyFirst.o Hello.o -o MyFirst


你是否会问,如果是一个项目的话,可能会有上百个文件,这样的编译法,人不是要累死在电脑前吗,或者等到你编译成功了,岂不是头发都白了,呵呵,所以我们要把上述的编译过程写进以下一个文本文件中:
#这里可以写一些文件的说明
MyFirst: MyFirst.o hello.o
g++ MyFirst.o hello.o -o MyFirst
Hello.o:Hello.cpp
g++ -c Hello.cpp -o Hello.o
MyFirst.o:MyFirst.cpp
g++ -c MyFirst.cpp -o MyFirst.o


程序的调试:

存盘为MyFirst,在终端输入:make MyFist ,程序出现了错误可是所有程序员共同的敌人,在编写程序时我们应该尽量的去避免错误的出现,不过编写的时候再怎么都不可避免的出现这样那样的错误,对程序进行必要的调试是一个好主意,那我们怎么来调试程序呢,看下面:
gdb ./文件名
以下为调试状态下的可以用到的命令(可以仅输入单词的输入,如break可简为b),尖括号中为说明

list <显示源代码>
break 行号 <设置断点>
run <运行程序>
continue <继续从断点处执行>
print 变量 <调试时查看变量的值>
del 行号 <删除断点>
step <单步执行,可跟踪到函数内部>
next <单步执行,不可跟踪到函数内部>
quit <退出>

It‘s never too late to learn!!!保持正确的姿态去学习,总有一天抵达成功的彼岸!!!

Linux下 编译C++/C以及常用的几种命令(ubuntu)

标签:linux   c   c++   编译   调试   

原文地址:http://blog.csdn.net/bob1993_dev/article/details/45973919

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!