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语言初阶基础

    详解C语言初阶基础 C语言是一种强大的编程语言,可用于编写操作系统、游戏、桌面应用程序等。本文将详细介绍C语言的初阶基础,以帮助初学者快速掌握C语言的入门知识。 1. C语言的基本概念 C语言是一种结构化的高级编程语言,最初由Dennis Ritchie于1972年开发。它是一门静态类型的编程语言,意味着在编写代码时,程序员必须声明变量的类型,而且一旦声明后…

    C 2023年5月23日
    00
  • 实例代码分析c++动态分配

    关于“实例代码分析c++动态分配”的完整攻略,我给你提供以下的步骤: 步骤一:了解C++动态分配 在学习实例代码分析C++动态分配之前,我们首先需要了解什么是C++动态分配。C++的动态分配是指在程序运行期间动态地分配内存空间,这样可以更加灵活地管理内存,并且可以解决程序运行时因为内存不足而崩溃的问题。 比如,在C++中可以使用new和delete运算符来实…

    C 2023年5月23日
    00
  • C语言实现井字棋(三子棋)

    C语言实现井字棋(三子棋)攻略 概述 井字棋(三子棋)是一种比较简单的两人游戏,可以用来练习C语言编程基础。本攻略将介绍如何使用C语言实现井字棋(三子棋)游戏。 准备工作 在开始编写代码之前,需要先安装C语言编译器。这里我们推荐使用Dev-C++,因为它是一款免费、轻量级、易用的C语言编译器。安装完成后,打开Dev-C++,新建一个C源代码文件,即可开始编写…

    C 2023年5月23日
    00
  • C++ Qt属性系统详细介绍

    C++ Qt属性系统详细介绍 Qt属性系统是一种在Qt框架中用于管理数据的机制。它允许开发人员将属性与对象资源关联并对其进行访问和操作。在本文中,我将详细介绍Qt属性系统,包括属性系统的基础知识、如何使用属性系统,以及使用属性系统的一些示例。 基础知识 Qt属性系统的核心是属性。一个属性是一个值的抽象,该值存储在对象中。在Qt中,属性被定义为QObject类…

    C 2023年5月22日
    00
  • 使用C语言编写圣诞表白程序

    下面是使用C语言编写圣诞表白程序攻略,主要分为以下几个步骤: 1. 准备环境 在本地计算机安装C语言编译器,比如常用的GCC或者Clang。 选择一个文本编辑器,比如Notepad++、Sublime Text等,来编写代码。 2. 编写代码 通过C语言编写程序代码,实现圣诞表白功能。 可以使用printf()函数实现向屏幕输出特定的字符或字符串。 可以使用…

    C 2023年5月23日
    00
  • 分页类,异常类

    下面是详细讲解“分页类,异常类”的完整攻略: 分页类 分页类通常用于对大量数据进行分页展示,其中包含以下属性: 当前页码(current_page) 总页数(total_page) 数据总数(total_count) 每页数据量(per_page) 分页类中的核心方法为 paginate() 方法,该方法会接收两个参数: $query:查询数据所用的 Que…

    C 2023年5月23日
    00
  • 详解C++异常处理(try catch throw)完全攻略

    作为本站的作者,我非常乐意为你介绍“详解C++异常处理(try-catch-throw)完全攻略”的内容。本篇攻略将涵盖以下主题,包括异常的概念,异常处理基本原则,以及如何使用try-catch块和throw语句等。 异常的概念 在C++程序中,如果发生了意外的错误,比如说磁盘空间不足,用户输入错误的数据等,这些都不是我们程序的预期结果。这时,程序会抛出一个…

    C 2023年5月22日
    00
  • BYC币怎么样?BYC/币缘币还值得投资吗

    BYC币的基本概念 BYC币,全名为币缘币(Bytecoin),是一种匿名、去中心化、开源的数字货币。它于2012年创立,是第一代公开发行的隐私币之一。相比于比特币,BYC币主张保护交易者的隐私,并提供更快的交易确认速度和更低的交易费用。 BYC币的投资价值分析 优点 高度保护隐私:BYC币使用了加密技术和混淆账户的方法,可以有效保护交易者的个人隐私。 去中…

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