`
shake863
  • 浏览: 661318 次
  • 性别: 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++

    ### Linux下C/C++代码编译详解 #### 一、GCC简介及基本用法 **GCC** (GNU Compiler Collection) 是一套广泛应用于Linux系统下的开源编译器集合,支持多种编程语言,包括C、C++等。对于C/C++开发者而言,掌握GCC的...

    Eclipse IDE for C/C++ Linux64位

    针对Linux平台,Eclipse IDE for C/C++充分利用了Linux系统的特性,如利用Shell命令行工具进行系统级操作,以及与Linux下的各种库和框架的兼容性。开发者可以直接在IDE内调用系统终端,运行shell命令,这对于处理...

    高级C C++编译技术_[美]斯特瓦诺维奇著

    库的加载是C/C++程序运行时的关键部分。书中会涉及动态链接和静态链接的区别,以及动态库的查找和加载过程,比如使用ldd命令检查依赖关系。此外,斯特瓦诺维奇可能还会讨论延迟加载(lazy binding)和插件系统...

    Linux下C/C++开发入门及开发环境配置

    掌握这些基本技能对于初学者来说至关重要,能够帮助他们在Linux平台上更加高效地进行C/C++程序开发。此外,通过了解GCC提供的各种优化和调试选项,开发者可以更好地优化自己的代码,提高程序的性能和稳定性。

    linux c/c++基础学习资料(百度云链接和提取码)

    在Linux上开发C/C++程序,需要安装必要的开发工具,如GCC/G++编译器、Make工具、GDB调试器等。同时,理解环境变量、编译链接过程、动态库静态库的使用也是编程环境搭建的关键。此外,学会使用版本控制系统如Git进行...

    linux下c/c++连oracle数据库技术pro*c

    Pro*C是Oracle公司提供的一种预编译器,它允许C或C++程序直接调用PL/SQL代码,极大地简化了数据库操作。本篇文章将详细探讨Linux下使用C/C++和Pro*C连接Oracle数据库的技术细节。 1. **Pro*C介绍**: Pro*C是...

    Linux/C/C++函数中文使用手册

    提供的三个.chm文件——`cplusplus.chm`、`Linux C 函数.chm`、`C_C++中文函数手册.chm`,分别详细介绍了C++标准库、Linux下的C函数和C/C++的通用函数,是学习和查询函数用法的重要参考资料。 总的来说,这份资源...

    linux和c/c++,makefile

    在这个压缩包中,"经典的linux和C语言"可能包含了一些经典的教程或者参考资料,比如讲解Linux系统编程的《Unix Network Programming》、《Advanced Linux Programming》等,或者关于C语言的《C Primer Plus》、《The...

    MinGW-w64 C/C++编译器+libsvm安装包.rar

    在这个“MinGW-w64 C/C++编译器+libsvm安装包”中,包含的mingw.mlpkginstall文件很可能是MinGW-w64的安装程序,它将帮助用户在Windows系统上快速配置好编译环境。而libsvm的集成意味着用户可以直接在这个环境中进行...

    如何在Linux使用Eclipse + CDT开发C C++程序

    传统在 Linux 下开发程序,是在文字模式下,利用 vi 等文字编辑器撰写 C/C++ 程序存盘后,在 Command line 下使用 gcc 编译,若要 debug,则使用 gdb。这种开发方式生产力并不高,若只是开发学习用的小程序则影响...

    linux C/C++超有用3

    "UNIX环境高级编程"这本书是学习Linux系统编程的经典之作,它深入讲解了如何利用C/C++在Unix/Linux环境下进行高效开发。 首先,Linux C/C++编程涉及到的知识点广泛,包括但不限于以下几个方面: 1. **标准库**:...

    编程及C/C++初学者 FAQ

    - **了解操作系统**:熟悉Windows或Linux的基本操作,因为C/C++程序通常需要在命令行下编译和运行。 - **练习编程**:编程是一项实践性很强的技能,需要不断地编写代码来提高自己的水平。 - **阅读源代码**:尝试...

    c/c++嵌入式开发与linux命令大全

    在"C/C++嵌入式开发与Linux命令大全"这一主题中,我们涵盖了两个主要领域:C/C++编程语言以及在Linux环境下进行嵌入式系统开发所使用的命令行工具。C和C++是底层编程的基石,广泛应用于嵌入式系统的开发,而Linux...

    linux C/C++超有用2

    8. **编译与调试**:如何使用`gcc/g++`编译器编译C/C++程序,以及使用`gdb`进行调试。 9. **Makefile**:解释如何编写Makefile自动化构建过程。 10. **安全编程**:讨论C/C++编程中的内存管理和错误处理,防止缓冲区...

    linux C/C++超有用4

    在Linux环境下进行C/C++编程是一项重要的技能,尤其对于系统级开发者和软件工程师而言。Linux提供了丰富的工具和库,使得C/C++程序员可以充分利用操作系统的能力。以下是一些关于"Linux C/C++超有用"的知识点: 1. ...

    mysql-5.7.18源码和connector C++源码在Linux在编译安装

    在Linux环境下,构建和安装MySQL 5.7.18的源码以及Connector/C++ 1.1.8是一项技术性较强的任务。首先,我们需要理解MySQL数据库系统的基础,它是世界上最流行的开源关系型数据库管理系统,而Connector/C++是MySQL...

    VSCODE的C/C++插件

    4. **调试支持**:C/C++插件集成了GDB调试器,允许用户在VSCODE中设置断点、单步执行、查看变量值等,为调试C/C++程序提供了直观的界面。这使得调试过程更为便捷,特别是在处理复杂问题时。 5. **配置文件支持**:...

    Linux环境下的C/C++小项目

    - 使用`gcc`或`g++`命令来编译和链接C/C++程序,例如:`gcc -o program program.c`。 3. **Makefile管理项目** - 大型项目中,使用Makefile可以自动化编译过程,管理依赖关系,提高效率。 - Makefile包含规则...

    vs code配置C/C++调试器和编译器json文件

    vs code配置C/C++调试器和编译器json文件

    Linux下安装Eclipse/JRE/CDT开发C/C++

    Linux操作系统是一个以C/C++为主要开发语言的平台,因其开源、稳定和高效而被广泛用于系统级和应用程序的开发。传统的Linux开发方式通常涉及使用文本编辑器(如vi/vim)编写代码,通过命令行使用gcc/g++进行编译,...

Global site tag (gtag.js) - Google Analytics