使用Linux GCC编译C++程序

Linux 编译C++程序的四种方法 前面那些文件都没用了,你需要重新建立一个空文件夹,在里面编写一个libHelloSLAM.cpp文件,内容如下(里面定义一堆函数)然后你就会在build里得到一个helloSLAM没有后缀的文件 ,在终端输入 ./helloSLAM就可以执行这个文件。你有一个test.cpp文件,然后你需要建立一个CMakeList.txt文件,内容如下。然后就会在build里面生成一个没有后缀的useHello文件。在终端输入 ./a.out 就可以执行。然后就会得到一个a.out 文件。你有一个test.cpp文件。 阅读详情

原文见C语言网。

如何编译和运行C++程序? (biancheng.net)

本节我们重点介绍 Linux GCC 的使用。

在C语言中,我们使用gcc命令来编译和链接C程序。例如编译单个源文件:

gcc main.c

编译多个源文件:

gcc main.c module.c

编译C++程序时,gcc命令也可以使用,不过要增加-lstdc++选项,否则会发生链接错误。例如编译单个源文件:

gcc main.cpp -lstdc++

编译多个源文件:

gcc main.cpp module.cpp -lstdc++

gcc命令在链接时默认使用C的库,只有添加了-lstdc++选项才会使用 C++ 的库。

不过 GCC 中还有一个g++命令,它专门用来编译 C++ 程序,广大 C++ 开发人员也都使用这个命令。g++命令和gcc命令的用法如出一辙,例如编译单个源文件:

g++ main.cpp

编译多个源文件:

g++ main.cpp module.cpp

使用-o选项可以指定可执行文件的名称:

g++ main.cpp -o demo
./demo


要想理解g++命令,我们得从 GCC 的历史谈起。GCC 是由 GUN 组织开发的,最初只支持C语言,是一个单纯的C语言编译器,后来 GNU 组织倾注了更多的精力,使得 GCC 越发强大,增加了对 C++、Objective-C、Fortran、Java 等其他语言的支持,此时的 GCC 就成了一个编译器套件(套装),是所有编译器的总称。

在这个过程中,gcc命令也做了相应地调整,它不再仅仅支持C语言,而是默认支持C语言,增加参数后也可以支持其他的语言。也就是说,gcc是一个通用命令,它会根据不同的参数调用不同的编译器或链接器。

但是让用户指定参数是一种不明智的行为,不但增加了学习成本,还使得操作更加复杂,所以后来 GCC 又针对不同的语言推出了不同的命令,例如g++命令用来编译 C++,gcj命令用来编译 Java,gccgo命令用来编译Go语言。

在以后使用 Linux GCC 时,我推荐使用g++命令来编译 C++ 程序,这样更加简洁和规范。

GCC安装和使用 1、什么是GCC “Linux系统下的Gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。 gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。” GCC 不仅支持 C 的许多“方言”,也可以区别不同的 C 语言标准;可以使用命令行 选项来控制编译器在翻译源代码时应该遵循哪个 C 标准。例如,当使用命令行参数 -std=c99 启动 GCC 时,编译器支持 C99 标准。 安装命令:版本& 阅读详情

相关推荐

在Linux系统下使用GCC/G++编译C++源文件

在Linux系统中,GCC是一个常用的编译器套件,其中包含了C、C++等编程语言的编译器。本文将介绍如何使用GCC/G++编译C++源文件,并提供相应的示例代码。通过以上步骤,我们成功地使用GCC/G++编译并运行了C++源文件。在实际编程中,可以根据需要添加更多的源文件,并使用合适的编译选项来进行编译。如果已安装,将显示GCC/G++的版本号。首先,确保已经在Linux系统中安装了GCC/G++编译器。希望本文对你理解在Linux系统下使用GCC/G++编译C++源文件有所帮助。步骤1:创建一个名为。

TechRoarX的博客 460

GCC编译器——利用GCC编译器编译C/C++程序

以下内容源于C语言中文网的学习与整理,非原创,如有侵权请告知删除。

主要记录嵌入式学习与开发过程。 5728

Linux环境下编译多个C++文件的程序

上述命令中,g++是gcc编译器的C++版本,main.cpp和functions.cpp是我们要编译的源代码文件,-o program指定输出文件名为program。以上就是在Linux环境下编译具有多个文件的C++程序的方法。假设我们有以下两个C++源代码文件:main.cpp和functions.cpp。main.cpp包含程序的主要逻辑,而functions.cpp包含一些辅助函数的实现。在Linux操作系统下,编写和编译多个C++文件的程序是非常常见的。Linux环境下编译多个C++文件的程序。

HackVibe的博客 575

Linux编程C/C++

GCC:GNU Compiler Collection(GUN 编译器集合),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。连接:多个目标文件(二进制)结合库函数等综合成的能直接独立执行的执行文件——生成后缀为“.out”的文件。预处理:编译处理宏定义等宏命令(eg:#define)——生成后缀为“.i”的文件。汇编:由汇编生成的文件翻译为二进制目标文件——生成后缀为“.o”的文件。编译:将预处理后的文件转换成汇编语言——生成后缀为“.s”的文件。

m0_58233509的博客 2549

无人机VS地面机器人:用AirSim和Gazebo玩转ROS2仿真的5个实战场景对比

本文深度对比了ROS2生态中两大仿真工具AirSim和Gazebo在无人机与地面机器人应用中的表现。通过电力巡检、仓库调度、SLAM建图等5个实战场景,分析了两者在视觉保真度、物理精度、开发效率等方面的差异,并提供了跨平台协作的实用技巧,帮助开发者根据项目需求选择合适的仿真工具。

flink9streamer的博客 900

Ubuntu20.04下SRS流媒体服务器的安装与开机自启动优化指南

本文详细介绍了在Ubuntu20.04系统下安装SRS流媒体服务器并优化开机自启动的完整指南。从基础环境准备、服务管理方案对比到systemd自启动深度优化,提供了实用的配置技巧和排查方法,帮助用户快速搭建稳定的流媒体服务环境。特别推荐使用systemd方案实现高效的自启动管理。

weixin_29313239的博客 410

[linux]使用g++/gcc编译c++程序

在linux环境下,g++可以编译c++程序 在链接阶段之前,是使用gcc完成的,但是gcc无法完成cpp程序的链接 链接是由g++完成的 一个简单的例子: //main.cpp #include<iostream> using namespace std; int main(){ cout<<"hello world"<<endl; ...

... 396

贝塞尔曲线基础

贝塞尔曲线于1962年由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau演算法开发,以稳定数值的方法求出贝兹曲线。

YiYeZhiNian的博客 2044

linux用gcc编译完怎么运行,linux下使用gcc编译运行C/C++程序

编译C首先,程序编译过程有:1.预处理(展开宏,头文件,检查代码是否有误)2.编译(将.c转为汇编代码.s)3.汇编(将汇编代码.s转为机器代码.o)4.链接(将所有机器代码.o和库文件链接成一个可执行程序)一般编译常常包括了:预处理,编译,汇编在linux系统中,编译c使用gcc编译器,如下:gcc -o out in1.c in2.c //gcc编译以及链接(对in1文件...

weixin_35897853的博客 3509

神经网络基础概念总结(小白入门自用)

神经网络人工神经网络多层感知机激活函数反向传播算法损失函数权值初始化正则化方法 人工神经网络 人工神经元:人工神经元是人工神经网络的基本单元。模拟生物神经元,人工神经元有1个或者多个输入(模拟多个树突或者多个神经元向该神经元传递神经冲动);对输入进行加权求和(模拟细胞体将神经信号进行积累和树突强度不同);对输入之和使用激活函数计算活性值(模拟细胞体产生兴奋或者抑制);输出活性值并传递到下一个人工神经元(模拟生物神经元通过轴突将神经冲动输入到下一个神经元)。 人工神经网络:大量的人工神经元以某种链接方式得来的

qq_42011158的博客 648

机器学习-深嵌交叉验证(Nested Cross-Validation)

Section I: Code and Analyses 第一部分:代码 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from...

Santorinisu Blogs 2716

linux 用gcc编译java_linux下使用gcc编译运行C/C++程序

编译C首先,程序编译过程有:1.预处理(展开宏,头文件,检查代码是否有误)2.编译(将.c转为汇编代码.s)3.汇编(将汇编代码.s转为机器代码.o)4.链接(将所有机器代码.o和库文件链接成一个可执行程序)一般编译常常包括了:预处理,编译,汇编在linux系统中,编译c使用gcc编译器,如下:gcc -o out in1.c in2.c //gcc编译以及链接(对in1文件...

weixin_30106425的博客 489

【COMSOL】修改内置物理场方程 模拟水沸腾的蒸汽泡运动

在COMSOL中通过弱贡献(weak contribution)节点,可以向任何内置模型方程中添加约束。这里,以模拟水沸腾的蒸汽泡运动为例,来讲一讲当我们研究的方程与模块方程不一样时,应该怎么增加新的贡献项。

u012161192的博客 9008

【Linux】Linux使用GCC编译C/C++程序的编译与链接过程

在Linux系统中,编译和链接是将源代码转换为可执行程序的关键步骤。编译器将源代码转换为目标代码,而链接器将目标代码和库文件链接在一起,生成最终的可执行文件。本文将详细介绍Linux中的编译与链接过程,并提供一些实用的示例代码。

科技改变人类,技术成就未来 1219

华为OD机考双机位C卷 - 虚拟理财游戏(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 虚拟理财游戏(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 668

C#实战大华智能安防系统:从SDK封装到视频流与智能报警的全链路落地

本文将介绍C#集成大华SDK开发安防系统的实战经验,重点解决多路视频预览卡顿和报警延迟问题。文章通过三层架构设计(SDK封装层、业务服务层、应用层)实现解耦,详细分析线程安全封装、高效解码显示和智能事件联动等核心技术。针对16路摄像头同时预览时CPU占用率过高的问题,提出使用子码流拉流与异步解码的优化方案,并总结8个常见开发陷阱的解决方案。文中还提供了大华智能安防系统的完整架构图,展示从设备层到应用层的交互流程,特别强调业务服务层中视频流服务和智能报警服务的核心功能设计。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 431

在linux下使用gcc/g++编译.h .cpp文件

1.gcc编译C源码的四个步骤: 预处理->编译->汇编->链接(test.c test.h => test.i => test.s => test.o => test) 1)预处理 gcc -E test.c -o test.i 2)编译 gcc -S test.i -o test.s 3)汇编 gcc -c test.s -o test.o 4)链接 gcc test.o -o test 执行可执行文件test ./t...

不知小姐 1万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

张赐荣 | 使用GCC和MinGW编译器在Linux或Windows上编译C/c++程序

【文章作者:张赐荣】 本教程将讲解怎样使用Linux版GNU编译器(GCC)和Windows版Minimalist GNU for Windows(MinGW)把C/C++语言源码编译成可执行程序。 方法和步骤 一、使用Linux/Unix版GCC 1.在Unix/Linux系统上打开终端窗口。 2.输入gcc --version并按 Enter。随后会返回C编译器的版本号。如果找不到命令,可能尚未安装GCC。 如果尚未安装,请在Linux发行版的相关文档中查找如何获取正确的安装包。 如果正在编译C++程

张赐荣的技术博客 2300

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

linux下c使用lzma_linux下使用gcc编译运行C/C++程序

编译C首先,程序编译过程有:1.预处理(展开宏,头文件,检查代码是否有误)2.编译(将.c转为汇编代码.s)3.汇编(将汇编代码.s转为机器代码.o)4.链接(将所有机器代码.o和库文件链接成一个可执行程序)一般编译常常包括了:预处理,编译,汇编在linux系统中,编译c使用gcc编译器,如下:gcc -o out in1.c in2.c //gcc编译以及链接(对in1文件...

weixin_42355294的博客 477

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Linux环境下,利用g++编译C++程序

Windows下我们用VS等IDE编译运行C++程序,那么在Linux下用什么工具来编译代码呢?常用的有两个:g++和gcc,先说如何编译运行程序,再说二者区别 创建cpp文件 打开终端,先使用vim命令创建cpp文件 [centos_1@localhost ~]$ vim compile_test.cpp 进入后长按键盘上的字母i,直到进入编辑模式,并编写代码 编写完成后,按ESC键退出编辑模式,同时按住shift+:(输入冒号),当左下角出现冒号 输入wq(保存并退出),按下回车,就会回到开始的终

weixin_43335392的博客 771

如何编译和运行C++程序?

C++ 和C语言类似,也要经过编译和链接后才能运行。那么C++是如何运行的呢,C++和C的运行步骤是一样的。我们需要留意的是C++源文件的后缀,以及GCC 中的g++命令。 下图是 C/C++ 代码生成可执行文件的过程: C++源文件的后缀 C语言源文件的后缀非常统一,在不同的编译器下都是.c。C++ 源文件的后缀则有些混乱,不同的编译器支持不同的后缀,下表是一个简单的汇总: 编译器 后...

weixin_45743799的博客 3340

Unix/Linux下编译C/C++程序

gcc/g++编译 如果编译C程序 $ gcc -o test NAME.c #可以 $ gcc NAME.c -o test #可以 这两条指令是把输出文件命名为test(-o 指定输出文件的名字).此输出文件是一个可执行文件,意思是计算机可以执行它,就像windows系统下的.exe文件,只不过在Unix/Linux下这种可执行文件没有拓展名。 test只是一个文件名,也可以是其他名。 以上...

紫藤&code的博客 2508

在Linux下编写C++程序,使用gcc编译c++出错

问题 /usr/bin/ld: /tmp/ccMSWoFl.o: in function __static_initialization_and_destruction_0(int, int)': first.cpp:(.text+0x38): undefined reference tostd::ios_base::Init::Init()’ /usr/bin/ld: first.cpp:(.text+0x4d): undefined reference to `std::ios_base::Init::

1459

c语言结束程序命令_如何编译和运行C++程序?

C++ 和C语言类似,也要经过编译和链接后才能运行。在《C语言编译器》专题中我们讲到了 VS、Dev C++、VC 6.0、Code::Blocks、C-Free、GCC、Xcode 等常见 IDE 或编译器,它们除了可以运行C语言程序,还可以运行 C++ 程序,步骤是一样的,这里不再赘述,读者需要留意的是 C++ 源文件的后缀,以及 GCC 中的g++命令。下图是 C/C++ 代码生成可执行文件...

weixin_39702649的博客 762

linux下使用gcc编译运行C/C++程序

编译C 首先,程序编译过程有: 1.预处理(展开宏,头文件,检查代码是否有误) 2.编译(将.c转为汇编代码.s) 3.汇编(将汇编代码.s转为机器代码.o) 4.链接(将所有机器代码.o和库文件链接成一个可执行程序) 一般编译常常包括了:预处理,编译,汇编 在linux系统中,编译c使用gcc编译器,如下: gcc -o out in1.c in2.c...

weixin_30362083的博客 1035
不爱吃饭胖子
博客等级 码龄3年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值