• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 在Linux下编译C或C++程序的教程

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了linux c++编译器,linux编译c++,linux下c++编程教程,linux c++项目实例,linux c++编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

从开始学习C/C++我们都在是windows下,那么如何(怎样)在linux中编译C/C++代码?在linux终端下(命令行中)编译译C/C++代码?

在任何linux分支下编译C/C++代码,如 Ubuntu ,Red Hat, Fedora ,Debian 以及其他linux分支上,我们需要安装一下软件包:

1.GNU C and C++ compiler collection
2.Development tools
3.Development libraries
4.IDE or text editor to write programs
第一步:安装 C/C++ 编译器和相关工具包

如果你是使用Fedora, Red Hat, CentOS, or Scientific Linux,可以使用yum命令快速安装GNU c/c++ 编译器:

[root@dabu.info ]# yum groupinstall 'Development Tools'

</div> </div>
[dabu@dabu.info ]$ sudo apt-get update
[dabu@dabu.info ]$ sudo apt-get install build-essential manpages-dev
</div> 第二步:确认是否安装成功</div>

输入以下命令,显示编译器版本和安装的文件夹:

[dabu@dabu.info ]$ whereis gcc
[dabu@dabu.info ]$ which gcc
[dabu@dabu.info ]$ gcc --version
</div>

输出如下图:

201573111516565.jpg (598×257)

如何(怎样)在linux中编译C/C++代码

创建一个demo.c文件,使用vi ,emacs 或者 joe 将下列c源代码输入进去:

  #include<stdio.h>
  /* demo.c: My first C program on a Linux */
  int main(void)
  {
  printf("Hello! This is a test prgoram.\n");
  return 0;
  }

</div>

接着进行编译:
编译的使用语法如下:

[dabu@dabu.info ]$  gcc program-source-code.c -o executable-file-name
</div>

或者

[dabu@dabu.info ]$    cc program-source-code.c -o executable-file-name
</div>

解释:program-source-code.c是C源代码,executable-file-name是编译后得到的可执行文件

又或者

[dabu@dabu.info ]$   make executable-file-name  #假设executable-file-name.c 这个文件存在 ##

</div>

下面以demo.c举例来将demo.c编译成可执行文件:
输入:

[dabu@dabu.info ]$   cc   demo.c  -o demo
</div>

或者

[dabu@dabu.info ]$   make demo  #假设demo.c在当前文件夹下存在
</div>

如果你的C/C++源代码没有错误,编译器就会编译成功同时在当前目录下创建一个叫做demo的可执行文件。否则,源代码有错误,你需要修正后重新编译。输入下面的命令来确认生成了可执行文件:

[dabu@dabu.info ]$    ls -l demo*
</div>

如何(怎样)在linux上运行或者执行这个叫做demo的可执行文件

输入以下命令:

[dabu@dabu.info ]$    ./demo
</div>

或者

[dabu@dabu.info ]$   /path/to/demo  #即demo文件的绝对路径

</div>

会话过程如下图:

201573112302266.gif (567×339)

编译和运行一个简单的C++程序

创建一个文件名为demo2 ,将下面的代码保存到该文件中;

  #include "iostream"
  // demo2.C - Sample C++ prgoram
  int main(void)
  {
  std::cout << "Hello! This is a C++ program.\n";
  return 0;
  }

</div>

编译demo2.c ,输入:

[dabu@dabu.info ]$    g++ demo2.C -o demo2
</div>

或者

[dabu@dabu.info ]$   make demo2
</div>

运行得到的可执行文件,输入:

[dabu@dabu.info ]$   ./demo2
</div>

如何(怎样)生成为GDB调试信息和警告信息?

C 使用以下语法;

[dabu@dabu.info ]$   cc -g -Wall input.c -o executable
</div>

解释:-Wall表示生成所有警告信息。-g表示生成调试信息

C++使用以下语法:

[dabu@dabu.info ]$   g++ -g -Wall input.C -o executable
</div>

如何(怎样)在linux上得到优化代码?

C 使用以下语法:

[dabu@dabu.info ]$   cc -O input.c -o executable 
</div>

解释: -O(大写的O)表示优化代码,编译后得到的文件比没优化的小些,执行可能更快

C++使用以下语法:

[dabu@dabu.info ]$   g++ -O -Wall input.C -o executable
</div>

如何(怎样)使用数学函数的C语言程序呢?

要增加 -lm参数让gcc与数学函数库连接:

[dabu@dabu.info ]$  cc myth1.c -o executable -lm
</div>

解释:-l参数就是用来指定程序要链接的库,-l参数紧接着就是库名,比如数学库,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名。
如何(怎样)编译一个使用Xlib 图形函数的C++程序?

[dabu@dabu.info ]$  g++ fireworks.C -o executable -lX11
</div>

解释:X11表示Xlib库
如何(怎样)编译多个源文件生成可执行程序 ?

假设要同时编译light.c, sky.c, fireworks.c 这3个C语言源文件,输入:

[dabu@dabu.info ]$  cc light.c sky.c fireworks.c -o executable
</div>

C++同时编译c.C bc.C file3.C 3个源代码文件,输入:

[dabu@dabu.info ]$  g++ ac.C bc.C file3.C -o my-program-name
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • linux C++ 获取文件绝对路径的实例代码
  • Linux中使用VS Code编译调试C++项目详解
  • Linux下用C++实现俄罗斯方块
  • C++实现Linux下弹出U盘的方法
  • 在Linux下编译C或C++程序的教程

相关文章

  • 2022-04-30C语言标识符、关键字、注释、表达式和语句
  • 2017-08-27c语言实现bfs状态搜索
  • 2017-05-28浅谈使用Rapidxml 库遇到的问题和分析过程(分享)
  • 2017-05-28C语言对栈的实现基本操作
  • 2017-05-28深入解析Radix Sort基数排序算法思想及C语言实现示例
  • 2017-05-28c 调用python出现异常的原因分析
  • 2017-05-28C++ read函数读入int整形数据
  • 2017-05-28fcntl函数的使用详解
  • 2017-05-28C++实现将数组中的值反转
  • 2017-05-28详解计数排序算法及C语言程序中的实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 解析bitmap处理海量数据及其实现方法分析
    • C++冒泡排序算法实例
    • 浅析C语言中的sizeof
    • linux根据pid获取进程名和获取进程pid(c语言获取pid)
    • 构造函数不能声明为虚函数的原因及分析
    • c语言全局变量和局部变量问题及解决汇总
    • 使用C++递归求解跳台阶问题
    • C++设计模式之适配器模式
    • 全排列算法的原理和实现代码
    • 内联函数inline与宏定义深入解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有