`
shake863
  • 浏览: 638702 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Linux下C/C++程序编译

阅读更多

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

sudo apt-get install build-essential
sudo apt-get install gcc
sudo apt-get install g++

好,现在我们在文本编辑器里写一个C的简单的程序(好像所有学习C或者C++的书都会出现)
代码:

#include <stdio.h>
int main()
{
    printf("Hello,World!\n");
    return 0;
}

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

gcc Hello.c -o hello   

编译时可能会出现如下警告:no newline at and of file ,只有在文件结尾添加一个新行就好了。
然后在终端中输入 ./hello ,你就能在终端中看到程序运行结果了。

下面来说下C++是如何编译的
写程序(不用我多说了吧)
代码:

#include <iostream>
using namespace std;
int main()
{
    cout<<"Hello,World!\n"<<endl;
    return 0;
}

存盘为Hello.cpp
使用gcc编译??? 不对,这里我们使用g++来编译C++程序
代码:

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

你是否会问,如果是一个项目的话,可能会有上百个文件,这样的编译法,人不是要累死在电脑前吗,或者等到你编译成功了,岂不是头发都白了,呵呵,所以我们要把上述的编译过程写进以下一个文本文件中:
Linux下称之为makefile
[code]
#这里可以写一些文件的说明
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
[\code]
存盘为MyFirst,在终端输入:make MyFist ,程序出现了错误可是所有程序员共同的敌人,在编写程序时我们应该尽量的去避免错误的出现,不过编写的时候再怎么都不可避免的出现这样那样的错误,对程序进行必要的调试是一个好主意,那我们怎么来调试程序呢,看下面:
[code]
gdb ./文件名
[/code]
以下为调试状态下的可以用到的命令(可以仅输入单词的输入,如break可简为b),尖括号中为说明
[code]
list <显示源代码>
break 行号 <设置断点>
run <运行程序>
continue <继续从断点处执行>
print 变量 <调试时查看变量的值>
del 行号 <删除断点>
step <单步执行,可跟踪到函数内部>
next <单步执行,不可跟踪到函数内部>
quit <退出>
[/code]

好了,看完本文我相信你应该比较了解了C/C++程序应该怎样在Linux下 编译并运行了吧。以后就要靠你自己了,书是必不可少的,还要一点耐心和毅力,你就是编程高手了!!!
 

分享到:
评论

相关推荐

    Linux下的C/C++、python编程和shell编程

    1) Linux下的C/C++编程,编写简单的C/C++程序并编译运行。 2) Linux下的python 编程,利用python语言编写程序。 3) Linux下的shell编程,从键盘输入任意值,然后利用while进行求和运算。 3. 实训总结 通过本次实训...

    Linux系统中如何编写C/C++程序

    很多学习Linux系统的小伙伴都免不了要在Linux系统中进行C/C++程序的编写、编译与执行,下面就来谈谈如何进行C/C++的编程。 以下操作均在CentOS 7中执行,顺便提一句,如果你用的是RedHat系统的话,要果断放弃,换成...

    基于linux C/C++和Qt的聊天程序

    这个程序是一个聊天程序,客户端的开始是基于Qt,服务端的开发是基于linux C/C++,只要有linux操作系统,并且安装了Qt,编译就能够运行。运行的时候需要安装mysql数据库,希望多大家学习linux编程和C++编程有帮助。 ...

    C/C++/Linux函数函数插桩(打桩)指南

    在具有一定规模的代码中(C 语言),调用第三方动态库中的函数来完成一些功能,是很常见的工作场景。 假设现在有一项任务:需要在调用某个动态库中的某个函数的之前和之后,做一些额外的处理工作。 这样的需求一般称作...

    在Linux下编译C或C++程序的教程

    从开始学习C/C++我们都在是windows下,那么如何(怎样)在linux中编译C/C++代码?在linux终端下(命令行中)编译译C/C++代码? 在任何linux分支下编译C/C++代码,如 Ubuntu ,Red Hat, Fedora ,Debian 以及其他linux分支...

    C/C++笔试题合集

    C++程序设计基础 精品课件 Oracle 常用SQL 笔记 《ASP.NET开发技术大全》 matlab90个基础实例 C/C++笔试题合集 oracle数据库培训资料 android反编译工具集合 c++课程设计聊天程序 Linux与Unix Shell编程指南...

    在Linux下编译并运行C程序

    在Linux下编译并运行C/C++程序的流程,包括环境设定,编译命令,makefile编写等

    Linux下C语言编程基础知识

    这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助

    c/c++ 记录日志,支持windows和linux,支持多线程

    打日志用的,经过了windows和linux下的测试,支持多线程,附上了实例,此实例在windows下运行只要加到win32控制台程序里就行了,记得去掉预编译头,在linux下测试,只要make 就行了,makefile已经在压缩包里了

    Linux下c语言模块条件编译模板源码

    在Linux系统下Makefile和C/C++语言都有提供条件选择编译的语法,就是在编译源码的时候,可以选择性地编译指定的代码。这种条件选择编译的使用场合有好多,例如我们开发一个兼容标准版本与定制版本兼容的项目,那么,...

    linux下GCC编译C程序

    如今,它已支持了许多不同的语言,包括C、C++、Ada、Fortran、Objective C,甚至还有Java。事实上,现代Linux系统除了可以自豪地炫耀那些由GNU工具直接支持的语言以外,它还支持大量其他语言。日益流行的脚本语言...

    eclipse 开发c/c++

    C 和 C++ 语言都是世界上最流行且使用最普遍的编程语言, 因此 Eclipse 平台(Eclipse Platform)提供对 C/C++ 开发的支持一点都不足为奇。 因为 Eclipse 平台只是用于开发者工具的一个框架,它不直接支持 C/C++;它...

    C C++ Linux多线程文件程序

    基于linux下的c/c++程序,多线程,断点续传功能没有实现, 可传输大于2G的文件。 设计思想:预先分配的N个缓冲区形成类似循环队列。 【1】预先分配N个缓冲区,多线程方式对缓冲区进行读写互斥,有类似生产者消费者的...

    Linux系统上C/C++编译器gcc/egcs详解

    Linux 中最重要的软件开发工具是 GCC.GCC是 GNU的 C和 C++编译器。实际上,GCC 能够编译三种语言:C 、C++ 和ObjectC (C 语言的一种面向对象扩展)。利用 gcc命令可同时编译并连接 C和 C++源程序。

    easymake, 简单 C/C++ 应用程序的一个方便的makefile.zip

    easymake, 简单 C/C++ 应用程序的一个方便的makefile Easymake简介Easymake是Linux系统上 C/C++ 应用程序的一个方便的makefile 。 对于简单的应用程序,甚至不需要编写一行生成文件代码来生成easymake目标。功能描述...

    Intel Parallel Studio XE Cluster版2(C/C++ 编译器2012)

    Intel编译器编译C和C++源程序的编译命令分别为`icc`和`icpc`;编译Fortran源程序的命令为`ifort`。`icpc`命令使用与`icc`命令相同的编译器选项,利用`icpc`编译时将后缀为.c和.i的文件看作为C++文件;而利用`icc`...

    google-perftools 源码 (一款针对 C/C++ 程序的性能分析工具)

    google-perftools 是一款针对 C/C++ 程序的性能分析工具,它是一个遵守 BSD 协议的开源项目。使用该工具可以对 CPU 时间片、内存等系统资源的分配和使用进行分析,本文将重点介绍如何进行 CPU 时间片的剖析。 google...

    C/C++笔试题(附答案,华为面试题系列)

    2.某32位系统下, C++程序,请计算sizeof 的值(5分). char str[] = “http://www.ibegroup.com/” char *p = str ; int n = 10; 请计算 sizeof (str ) = ?(1) sizeof ( p ) = ?(2) sizeof ( n ) = ?(3) void...

    Intel Parallel Studio XE Cluster版1(C/C++ 编译器2012)

    Intel编译器编译C和C++源程序的编译命令分别为`icc`和`icpc`;编译Fortran源程序的命令为`ifort`。`icpc`命令使用与`icc`命令相同的编译器选项,利用`icpc`编译时将后缀为.c和.i的文件看作为C++文件;而利用`icc`...

    Linux中使用VS Code编译调试C++项目详解

    关于VS Code在Linux下的安装这里就不提了,不管是CentOS还是Ubuntu,如果不懂且搜问题足够的情况下,你会解决的。 一、前置知识——gcc/g++的编译链接过程 在Windows下,如果你用Visual Studio进行开发,C/C++的...

Global site tag (gtag.js) - Google Analytics