Ubuntu中c/c++语言简单程序编写以及使用gcc/g++方式编译简单程序(基础)

这里写目录标题

  • Ubuntu中c/c++语言简单程序编写以及使用gcc/g++方式编译简单程序(基础)
  • 一、编写hello world入门
    • 1、安装vim
    • 2、编写简单helloworld程序
  • 二、使用gcc编译c/c++简单主/子程序
  • 三、window中编写主/子程序
    • 1、使用软件
    • 2、步骤
  • 四、Ubuntu下用makefile方式编写程序
    • 1、安装make
    • 2、编程

一、编写hello world入门

1、安装vim

在Ubuntu桌面按鼠标右键或者Ctrl+Alt+T打开终端

输入sudo apt-get install vim安装vim

sudo apt-get install vim

2、编写简单helloworld程序

(1) 创建目录helloworld(也可以不创建,就在默认目录下),输入mkdir helloworld

mkdir helloworld

(2) 打开helloworld文件夹

cd helloworld

(3)创建hello.cpp/hello.c文件

vim hello.cpp

(4)输入hello.cpp文件

#include<iostream>
using namespace std;
int main()
{cout<<"hello world!";return 0;
}

(5)编译hello.cpp,输入g++ hello.cpp(默认下生成a.out可执行文件,改变成其他文件名需要在后面加 -o filemame)

g++ hello.cpp

(6) 执行可执行文件a.out

./a.out

(7)输出结果

二、使用gcc编译c/c++简单主/子程序

(1)创建一个main1.cpp文件

vim main1.cpp

(2) 编写一个main1.cpp程序

#include<iostream>
#include"sub1.cpp"
using namespace std;
int main()
{int a,b;a=3;b=6;float c;c=B2B(a,b);cout<<c;return 0;
}

(3) 创建一个sub1.cpp文件

vim sbu1.cpp

(4) 编写一个sub1.cpp程序


#include<iostream>
using namespace std;
float B2B(int a,int b)
{float d;d=a+b;return d;
}

(5) 编译main1.cpp/main1.c程序

编译main1.cpp程序使其转化为名为main2的可执行文件

g++ main1.cpp -o main2

编译main1.c程序使其转化为名为main1的可执行文件

gcc main1.c -o main1

(6) 执行main2可执行文件

./main2或者./main1

(7) 执行结果

c++下:

c下:

三、window中编写主/子程序

1、使用软件

visual studio2019

2、步骤

(1)新建项

(2)创建sub1.h头文件

(3)编写sub1.h头文件

float B2B(int a, int b);

(4)创建sub1.cpp

(5)编写sub1.cpp文件

#include"sub1.h"
#include<iostream>
using namespace std;
float B2B(int a, int b)
{float d;d = a + b;return d;
}

(6)创建main1.cpp文件

(7)编写main1.cpp文件

#include<iostream>
#include"sub1.h"
using namespace std;
int main()
{int a, b;a = 3; b = 6;float c;c = B2B(a, b);cout << c;return 0;
}

(8)运行·结果

四、Ubuntu下用makefile方式编写程序

1、安装make

sudo apt-get install make

2、编程

必须在同一目录下,否则可能会显示找不到文件

(1)创建main1.c文件(跟Windows下一样只是换成了c语言)

vim main1.c

(2)编写main1.c文件

#include<stdio.h>
#include"sub1.h"
int main(){int a=3,b=6;float c;c=B2B(a,b);printf("%f\n",c);return 0;
}

(3)创建sub1.c文件

vim sub1.c

(4)编写sub1.c文件

#include<stdio.h>
#include"sub1.h"
float B2B(int a,int b)
{float d;
d=a+b;
return d;
}

(5)创建sub1.h头文件

vim sub1.h

(6)编写sub1.h文件

float B2B(int a, int b);

(7)创建makefile文件

vim makefile

  • 也可以命名为GNUmakefile、Makefile如果是其它命名则需要通过命令行指定一个或多个目标

(8)编写makefile文件

 main1: main1.o sub1.ogcc -o main1 main1.o sub1.o
main1.o:main1.c sub1.hgcc -c main1.c
sub1.o:sub1.c sub1.hgcc -c sub1.c
clean:rm *.o main1
  • main1为最后生成的可执行文件名
  • command前的空格为tab键,上一行target行换行后的空格是默认的8个空格,需要删除后重新按tab键
  • clean的作用是删除编译过程中产生的“.o“文件

(9)运行指令make(同时编译链接上一步中的文件,生成名为main1的可执行文件)

(10)执行main1文件结果

Ubuntu中cc++语言简单程序编写以及使用gccg++方式编译简单程序(基础)相关推荐

  1. Android驱动(1)---Ubuntu中为Android系统上编写Linux内核驱动程序实现方法

    Ubuntu中为Android系统上编写Linux内核驱动程序实现方法 本文主要介绍在Ubuntu 上为Android系统编写Linux内核驱动程序, 这里对编写驱动程序做了详细的说明,对研究Andr ...

  2. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  3. 习题 11.1 将例11.1的程序片断补充和改写成一个完整、正确的程序,用公用继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上。。

    C++程序设计(第三版) 谭浩强 习题11.1 个人设计 习题 11.1 将例11.1的程序片断补充和改写成一个完整.正确的程序,用公用继承方式.在程序中应包括输入数据的函数,在程序运行时输入num, ...

  4. 习题 11.1 将例11.1的程序片断补充和改写成一个完整、正确的程序,用公用继承方式。在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值。

    习题 11.1 将例11.1的程序片断补充和改写成一个完整.正确的程序,用公用继承方式.在程序中应包括输入数据的函数,在程序运行时输入num,name,sex,age,addr的值,程序应输出以上5个 ...

  5. ubuntu中snap包管理器的安装、更新删除与简单使用

    概述 什么是snap,snap是一种全新的软件包管理方式,它类似一个容器拥有一个应用程序所有的文件和库,各个应用程序之间完全独立.所以使用snap包的好处就是它解决了应用程序之间的依赖问题,使应用程序 ...

  6. Ubuntu 20.04.2.0 LTS 下利用Geany 1.36编译C++程序报错“/bin/sh: 1: g++: not found”

    [问题描述] Ubuntu 20.04.2.0 LTS 下利用 sudo apt-get install geany 命令安装Geany 1.36后,利用Geany 1.36写C++语言程序后,单击G ...

  7. 随手记——Linux中C语言调用shell指令的三种方式

    在学习资料满天飞的大环境下,知识变得非常零散,体系化的知识并不多,这就导致很多人每天都努力学习到感动自己,最终却收效甚微,甚至放弃学习.我的使命就是过滤掉大量的无效信息,将知识体系化,以短平快的方式直 ...

  8. 基于天问block编译环境下ASRPRO语音芯片程序编写教程(一)软件下载与基础程序语句篇

    ASRPRO芯片是针对低成本离线语音应用方案开发的一款通用.便携.低功耗高性能的语音识别芯片,采用了第三代 BNPU 技术,能支持 DNN\TDNN\RNN 等神经网络及卷积运算,支持语音识别.声纹识 ...

  9. 小程序推广有几种方式?小程序运营有什么步骤?

    目前,微信小程序已经成为越来越多企业进行拓客推广的方式,但如何推广.如何引流成为不少企业需要思考的难题.小程序使用便捷,但也需要了解小程序的特性及推广方式,才能更好地进行运营.小程序有哪些入口?企业可 ...

最新文章

  1. 在MVC的cshtml视图页获取默认路由下的ID值的方法
  2. TESLA CENTER
  3. -XX:+UseParallelGC与 -XX:+UseParNewGC相关介绍
  4. 超完整的 Chrome 浏览器客户端调试大全
  5. hibernate5.0映射配置文件核心配置文件数据更新丢失
  6. 项目中对axios的全局封装
  7. 老司机的HCIE战报
  8. 计算机监理培训计划,监理人员培训计划
  9. 功能测试常见的测试方法有哪些?
  10. 路由器与交换机知识总
  11. 计算机 26个英文字母代表数字,数字能量字母对照表-26个英文字母各代表什么数字...
  12. 【unity3D】单点和多点触控
  13. 适合化工厂人员定位技术浅析,化工厂人员室内定位--新导智能
  14. 每周推荐短视频:商用车实现无人驾驶的目的是什么?
  15. 系统信息相关命令(时间和日期 date cal,磁盘信息,进程信息)
  16. vue 实现无限轮播_vue实现匀速轮播效果
  17. 群晖webdev挂载中国移动和彩云网盘
  18. 学生成绩查询系统(php+mysql)
  19. 什么样的企业是负责任的企业
  20. SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势

热门文章

  1. 万能SQL查询面试题
  2. 《客户端脚本语言-JavaScript》
  3. aee快递查询 在php_GitHub - tekintian/php-EAN-13-barcode at dd639319bbcf215aee728fd37eb9b7d39c8f45dd...
  4. PySide2/PyQt5 设置关闭提示窗口
  5. 80端口被占用了怎么办?
  6. 【Ubuntu-向日葵】
  7. 程序员(攻城狮)成长之路
  8. A-Level多少分才能上英国TOP10?
  9. 使用python处理srec/s19文件
  10. 用Greasymonkey实现密码自动填充