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 2023年5月22日
    00
  • java 三元操作符用法说明

    Java的三元操作符也称为条件运算符(Ternary Operator),它是Java中唯一的一个三元运算符。它使用“?”和“:”符号,表示一个简单的条件转换操作,它通常用于简化if-else语句的使用。这个操作符的语法格式如下:expression1 ? expression2 : expression3。 其中,expression1为一个布尔表达式或者…

    C 2023年5月22日
    00
  • 使用C++实现位图处理

    使用C++实现位图处理攻略 什么是位图 位图(Bitmap),又称为点阵图,是一种用二进制数来表示图像的存储方式。位图是由若干像素点组成的栅格图像,每个像素点有固定的颜色值,颜色值的位数决定了图片的颜色数。 C++实现位图处理 使用C++语言可以方便快速地对位图进行处理,本文将介绍如何使用C++对位图进行灰度化、二值化操作。 读取位图文件 要处理位图,首先需…

    C 2023年5月23日
    00
  • c++11 类中关于default、explict、implicit、noexcept、final的详解

    标题:C++11类中关于default、explicit、implicit、noexcept、final的详解 default 在C++11中,我们可以使用default关键字来显式地声明函数的默认实现,它的作用是生成编译器默认的函数实现。下面是一个示例: class MyClass { public: MyClass() = default; MyClas…

    C 2023年5月23日
    00
  • javascript中的括号()用法小结

    让我为你详细讲解“JavaScript中的括号()用法小结”。 标题 1. 函数调用 在JavaScript中,括号()主要用于函数调用。 函数调用是指通过函数名后加上一对括号()来执行该函数。例如: function hello() { console.log("Hello, world!"); } hello(); // 调用函数he…

    C 2023年5月22日
    00
  • C++实现从数组中同时取出最大最小元素算法示例

    C++实现从数组中同时取出最大最小元素算法示例 算法思路 从数组中取最大最小值的算法是比较基础的一种算法,其实现思路也较为简单。本算法的实现思路如下: 定义一个变量来存储最大值,首先将其赋值为数组的第一个元素。 定义一个变量来存储最小值,首先将其赋值为数组的第一个元素。 遍历数组中的每一个元素,当找到一个比当前最大值还大的元素时,将最大值变量的值更新为该元素…

    C 2023年5月23日
    00
  • PHP+JQUERY操作JSON实例

    关于“PHP+JQUERY操作JSON实例”的完整攻略,我会从以下几个方面进行详细讲解: 什么是JSON 如何使用PHP操作JSON 如何使用JQUERY操作JSON 示例说明 1. 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,很多前端开发人员都会使用JSON来传输数据,特别是在AJAX中经常使…

    C 2023年5月22日
    00
  • 浅谈C++如何求等差素数列

    浅谈C++如何求等差素数列 什么是等差数列? 等差数列指的是数列中后一项与前一项的差值相等的数列,这个公差可以为任何实数。例如,1,3,5,7,9就是一个公差为2的等差数列。 什么是素数? 素数指的是只能被1和自身整除的正整数,例如2,3,5,7,11都是素数,而4,6,8,9都不是素数。素数是一个重要且基础的数学概念,在计算机领域中经常被用到。 怎样求等差…

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