linux下使用g++编译cpp工程的方法

在Linux下使用g++编译cpp工程的方法共分为以下几个步骤:

1. 安装g++

在终端输入以下命令安装g++:

sudo apt-get update
sudo apt-get install g++

2. 准备工程文件

创建一个名为my_project的文件夹,在其下创建三个cpp文件,分别为main.cpp、function1.cpp和function2.cpp。其中main.cpp文件包含main函数,其他两个文件包含功能函数。

3. 编写Makefile

在my_project文件夹下新建一个名为Makefile的文件,并在其中加入以下内容:

CC = g++
CPPFLAGS = -Wall -std=c++11
OBJS = main.o function1.o function2.o

my_app: $(OBJS)
    $(CC) $(CPPFLAGS) -o my_app $(OBJS)

main.o: main.cpp
    $(CC) $(CPPFLAGS) -c main.cpp

function1.o: function1.cpp
    $(CC) $(CPPFLAGS) -c function1.cpp

function2.o: function2.cpp
    $(CC) $(CPPFLAGS) -c function2.cpp

clean:
    rm -rf *.o my_app

4. 编译工程

在终端进入my_project文件夹,输入以下命令进行编译:

make

示例1

以下是一个带有参数的函数调用的示例,用于计算斐波那契数列的第n项。

main.cpp

#include <iostream>
#include "function1.h"

using namespace std;

int main(int argc, char** argv) {
    int n = stoi(argv[1]);
    cout << "斐波那契数列的第 " << n << " 项为:" << fibonacci(n) << endl;
    return 0;
}

function1.h

#ifndef FUNCTION1_H
#define FUNCTION1_H

int fibonacci(int n);

#endif

function1.cpp

#include "function1.h"
#include "function2.h"

int fibonacci(int n) {
    if (n == 0) {
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        return fibonacci(n-1) + fibonacci(n-2);
    }
}

function2.h

#ifndef FUNCTION2_H
#define FUNCTION2_H

#endif

示例2

以下示例是一个简单的计算器,实现加减乘除四种运算。

main.cpp

#include <iostream>
#include "function1.h"

using namespace std;

int main() {
    double a, b;
    char op;
    cout << "请输入两个数和运算符,以空格隔开:";
    cin >> a >> b >> op;
    switch (op) {
        case '+':
            cout << a << " + " << b << " = " << add(a, b) << endl;
            break;
        case '-':
            cout << a << " - " << b << " = " << subtract(a, b) << endl;
            break;
        case '*':
            cout << a << " * " << b << " = " << multiply(a, b) << endl;
            break;
        case '/':
            cout << a << " / " << b << " = " << divide(a, b) << endl;
            break;
        default:
            cout << "无效的运算符!" << endl;
            break;
    }
    return 0;
}

function1.h

#ifndef FUNCTION1_H
#define FUNCTION1_H

double add(double a, double b);
double subtract(double a, double b);
double multiply(double a, double b);
double divide(double a, double b);

#endif

function1.cpp

#include "function1.h"

double add(double a, double b) {
    return a + b;
}

double subtract(double a, double b) {
    return a - b;
}

double multiply(double a, double b) {
    return a * b;
}

double divide(double a, double b) {
    return a / b;
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下使用g++编译cpp工程的方法 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++ IO设备读写功能实现详解

    C++ IO设备读写功能实现详解 在C++中,IO设备读写功能可以通过标准库中的iostream库实现。本文将详细讲解iostream库的基本使用方法和一些实际操作示例。 基本概念 在使用iostream库进行输入输出操作之前,需要了解一些概念: 输入流:用于从设备中读取数据的流,通常是std::cin 输出流:用于向设备中写入数据的流,通常是std::co…

    C 2023年5月23日
    00
  • 详解C语言编程中的函数指针以及函数回调

    详解C语言编程中的函数指针以及函数回调 函数指针 函数指针是指向函数的指针变量。和普通指针不同的是,函数指针指向的是函数,因此可以用来调用函数。 函数指针的定义方式如下: 返回值类型 (*指针变量名)(参数列表); 具体说明: 括号内是指针变量名 指针变量名前面的*表示该变量是指针变量 指针变量名后面的括号表示指针变量指向的是函数 括号内是参数列表,如果函数…

    C 2023年5月23日
    00
  • C++发送邮件实现代码

    下面我就为你详细讲解一下C++发送邮件实现代码的完整攻略。 1. 确定邮件发送的方式和协议 邮件的发送方式主要有两种:SMTP 和 HTTP。SMTP 协议是发送邮件的标准协议,使用 TCP 协议进行通信,而 HTTP 则是更通用的协议,适用于更多的场景,但是在邮箱的开放性上不如 SMTP 协议。 SMTP 协议通常使用端口号 25,但是一些邮箱可以配置不同…

    C 2023年5月24日
    00
  • C语言字符串函数介绍与模拟实现详解

    C语言字符串函数介绍与模拟实现详解 简介 C语言中的字符串是以字符数组的形式保存的,而字符串函数则是对这些字符数组执行一些常见的字符串操作的函数库。本文将介绍常见的C语言字符串函数,并演示如何模拟实现这些函数。 常见字符串函数 strlen() strlen()函数用于返回字符串的长度,即其包含的字符个数,不包括字符串末尾的’\0’。 示例: #includ…

    C 2023年5月23日
    00
  • C++从汇编的视角审视对象的创建问题

    让我们来详细讲解一下“C++从汇编的视角审视对象的创建问题”的攻略。 问题背景 在C++编程中,对象的创建问题是经常会遇到的难点问题之一。对于不同种类的对象,我们需要知道它们在内存中的布局、创建和销毁时的过程,以及各种构造函数和析构函数的作用等等。而从汇编的视角审视对象的创建问题则可以更加深入地了解这一过程。 攻略步骤 下面将从汇编的视角出发,介绍对象的创建…

    C 2023年5月22日
    00
  • C++初级线程管理

    C++初级线程管理是多线程编程中最基础的部分,它可以帮助开发者充分利用计算资源,提升程序的并发能力,从而提高程序的运行效率。下面是完整的C++初级线程管理攻略: 线程的概念和基本使用 线程的概念 线程是计算机程序执行流的最小单元,它是操作系统能够进行运算调度的基本单位。与进程不同,线程通常是在同一进程中执行的,因此共享同一份资源,包括内存空间、文件描述符和其…

    C 2023年5月22日
    00
  • 一起来学习C语言的程序环境与预处理

    让我来详细讲解一下“一起来学习C语言的程序环境与预处理”的完整攻略。 程序环境的搭建 安装编译器 首先,我们需要选择一款适合自己的C语言编译器。常见的编译器有: GCC:开源免费的编译器,支持多种操作系统,功能强大。 MSVC:微软公司开发的编译器,适合在Windows操作系统上使用。 Clang:基于LLVM架构的编译器,支持各种操作系统,编译速度快。 在…

    C 2023年5月23日
    00
  • CentOS安装使用VeraCrypt及创建整个加密硬盘详解

    CentOS安装使用VeraCrypt及创建整个加密硬盘详解 1. VeraCrypt简介 VeraCrypt是一个开源加密软件,可以对硬盘、U盘等存储设备进行加密和解密。它提供了一个非常安全的加密方式,在没有正确密码的情况下,即使是最顶级的黑客也无法破解。 2. 安装VeraCrypt 在CentOS上安装VeraCrypt需要使用RPM包管理器,可以通过…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部