Linux下编译多cpp

本文介绍了在Linux下使用GCC/G++编译C/C++代码的方法,包括直接用g++编译单个.cpp文件,以及有多个.cpp文件时使用Makefile编译。详细说明了Makefile的写法,还给出了C++示例代码,指出更多文件时使用Makefile更佳,可在其中追加源文件编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Makefile编译多个cpp文件

1:首先:用g++编译.cpp文件的方法:

可以直接用:

g++ 文件名.cpp

生成一个名为 “文件名.out” 的可执行文件

其原理为:

先由:

g++ -c 文件名.cpp:生成一个名为 “文件名.o” 的文件

再由:

g++ 文件名.o:生成一个名为 “文件名.out” 的可执行文件

另外,可以用:

g++ -c 文件名.cpp -o 新文件名.cc:生成一个被命名成 “新文件名” 的.o文件

g++ 文件名.o -o 新文件名:生成一个名为 “新文件名” 的可执行文件
 

例如:这里有一个a.cpp文件

里面的内容为:

#include<stdio.h>
int main(){
    printf("随便输出点东西");
    return 0;
}
在该文件所在的目录下打开终端,输入:

 即可生成一个可执行文件a.out:

输入:

可生成一个名为lalala的可执行文件

在终端输入:./ a.out     即可运行该程序 (输入./ lalala   也可以)

 

 

 2:有多个.cpp文件时,用Makefile编译更加方便,下面是Makefile的写法

例如:这里有2个.cpp文件组成的程序

我的Makefile应该这样写:

#第一个maincc是自己随便起的要生成的可执行文件的名字,main.o和circle.o是生成maincc要用到的文件
maincc:main.o circle.o
    g++ circle.o main.o -o maincc    #用g++把circle.o和main.o两个文件编译成可执行文件
                                         #并用 -o 将其命名为maincc
#这一步是main.o的生成,main.cpp是生成main.o要用到的文件
main.o:main.cpp
    g++ -c main.cpp   #用g++ -c 把main.cpp编译成.o文件
#这一步是circle.o的生成,circle.cpp是生成circle.o要用到的文件
circle.o:circle.cpp
    g++ -c circle.cpp   #用g++ -c 把circle.cpp编译成.o文件
加上注释有点乱,这是未加注释的源文件:(第2,4,6行的缩进是一个Tab键)

写完保存,直接在终端输入:make     即可编译这两个.cpp文件并生成一个可执行文件maincc

如果,你的文件名字可以不叫Makefile,也可以叫abcdef

编译的时候在终端输入:make -f abcdef 即可

 

编译完成生成的.o文件用不到,可以加两句话自动把.o删掉(编译时要在终端里输入make clean)

 

 另外,生成.o文件是为了加深理解,也可以直接用g++将两个.cpp文件编译成一个可执行文件

 
-----------------------------------------------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------------------------------------------

在Linux下使用GCC/G++来编译执行C/C++代码 
C++代码编译: 
g++ -c main.cpp -o main.o 
g++ -c Circle.cpp -o sub.o 
g++ main.o Circle.o -o main 
./main 
注:用-c 编译出各自的目标文件,在合并编译出可执行文件main 
C语言编译同上,把g++换成gcc即可,如下: 
gcc -c main.c -o main.o 
gcc -c sub.c -o Circle.o 
gcc main.o sub.o -o main 
./main 
下面举例C++的示例代码(C语言省略): 
文件1:main.cpp

#include"Circle.h"
#include<iostream>
using namespace std;
int main(int argc,char *argv[])
{
    Circle c(3);
    cout<<"Area="<<c.Area()<<endl;
    c.display();
    return 0;
}

文件2源文件:

#include"Circle.h"
#include<iostream>
using namespace std;
Circle::Circle()
{this->r=5.0;}
Circle::Circle(double R)
{this->r=R;}
double Circle::Area()
{return 3.14*r*r;}
void Circle::display()
{cout<<"Area="<<Area()<<endl;};

文件2头文件:

#ifndef CIRCLE_H
#define CIRCLE_H
class Circle
{
    private:
        double r;
    public:
        Circle();
        Circle(double R);
        double Area();
        void display();
};
#endif

更多文件时,编译更多,使用makefile文件更佳 
编写makefile文件后,在当前目录下,在命令行$make执行即可 
makefile文件示例:

#explain
main:main.o Circle.o
    g++ main.o Circle.o -o main
Circle.o:Circle.cpp
    g++ -c Circle.cpp -o Circle.o
main.o:main.cpp
    g++ -c main.cpp -o main.o

多个文件时,可在Makefile里继续追加相应源文件的编译。
--------------------- 

原文:https://blog.youkuaiyun.com/u012906277/article/details/54426151 

原文:https://blog.youkuaiyun.com/qq_41748900/article/details/82316662 

<think>好的,用户的问题是关于如何在Linux系统中安装C++编译器。我需要根据提供的引用内容来组织回答。首先,确认不同的Linux发行版可能有不同的安装方法,比如CentOS和Ubuntu。 根据引用[1]、[2]、[3]、[4],CentOS或基于RHEL的系统通常使用yum或dnf来安装,而Ubuntu或Debian系统使用apt-get。引用[4]提到安装个包,如gcc-c++、make等,这可能是在CentOS下的步骤。引用[2]和[3]提到了更新软件包列表和安装GCC编译器,可能适用于Ubuntu。同时,引用[3]还提到了版本GCC共存的问题,但用户可能暂时不需要,可以放在高级部分。 需要分步骤说明CentOS和Ubuntu的安装方法,确保命令正确。然后验证安装是否成功,用g++ -v或者写一个测试程序。可能的问题包括权限不足,需要sudo,或者网络问题导致安装失败。还可以提到安装开发工具包,如build-essential在Ubuntu中,引用[4]中的yum安装个依赖包。 最后,生成相关问题时要考虑用户可能的后续需求,比如版本安装、编译过程、环境配置等。需要确保回答清晰,结构合理,引用正确,比如引用[1]和[4]对应CentOS,引用[2]对应Ubuntu。</think>在Linux系统中安装C++编译器主要通过包管理器实现,不同发行版的操作略有差异。以下是详细步骤: ### 一、CentOS/RHEL系统安装 1. **更新软件源** ```bash sudo yum update ``` 2. **安装开发工具包**(包含gcc、g++、make等) ```bash sudo yum groupinstall "Development Tools" # 引用[4] ``` 3. **单独安装gcc-c++** ```bash sudo yum install gcc-c++ # 引用[1] ``` ### 二、Ubuntu/Debian系统安装 1. **更新软件列表** ```bash sudo apt-get update # 引用[2] ``` 2. **安装build-essential工具包** ```bash sudo apt-get install build-essential ``` ### 三、验证安装 ```bash g++ --version # 应显示类似g++ (GCC) x.x.x ``` ### 四、编写测试程序 创建test.cpp: ```cpp #include <iostream> int main() { std::cout << "Hello Compiler!" << std::endl; return 0; } ``` 编译运行: ```bash g++ test.cpp -o test && ./test ``` ### 五、常见问题处理 - 若出现权限问题,在命令前加`sudo` - 缺少依赖库时,根据提示用`yum install <包名>`或`apt install <包名>`补全 - 版本管理可使用`update-alternatives`工具 # 引用[3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值