Linux centOS 编译C/C++

简介: Linux centOS 编译C/C++

安装C和C++编译器

yum -y install gcc*

查看CenterOS系统信息

cat /etc/system-release
CentOS Linux release 8.2.2004 (Core)

查看gcc版本

gcc --version
gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-4)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

升级编译器

yum -y install centos-release-scl devtoolset-8-gcc*

启用软件包

echo "source/opt/rh/devtoolset-8/enable" >> /etc/profile

安装库函数帮助文档

yum -y install man-pages

帮助文档使用

man 命令或函数
man 级别 命令或函数

man级别:

1-用户命令  //常用
2-系统接口
3-库函数    //常用
4-特殊文件,比如设备文件
5-文件
6-游戏
7-系统的软件包
8-系统管理命令
9-内核

编译

gcc C语言
g++ C++语言
gcc/g++ 选项 源代码文件1 源代码文件2 选代码文件n
-o  //指定输出文件名,不能和源文件名相同,如果不给出则生成a.out
-g  //如果相对源代码进行调试,必须加入
-On //在编译、链接过程中进行优化处理,生成的可执行程序效率更高
-O0 //默认编译选项,不做任何变化
-O/-O1  //对程序做部分编译优化,对于大函数,优化编译占用稍多的时间和相当大的内存,使用本项优化,编译器会尝试减小生成代码尺寸,以及缩短执行时间,但并不执行需要占用大量编译时间的优化
-O2 //是比O1更高级的选项,进行更多的优化。与O1比较而言,O2优化增加了编译时间的基础上,提高了生成代码的执行效率
-O3 //比O2更进一步的优化
-c  //只编译,不链接成为可执行文件,通常用于把文件编译成静态库或动态库

使用优化选项:1)编译时间更长 2)目标程序不可调试 3)有效果,但是不可能显著提升程序的性能

支持C++11

-std=c++11


相关文章
|
5月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
128 4
|
5月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
270 3
|
11月前
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
573 2
|
4月前
|
Oracle 关系型数据库 Linux
MyEMS开源系统安装之CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux
本指南介绍如何在CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux服务器上部署MyEMS开源能源管理系统。内容涵盖系统准备、数据库配置、多个MyEMS服务(如myems-api、myems-admin、myems-modbus-tcp等)的安装与配置,以及Nginx服务器设置和防火墙规则调整。通过完成所有步骤,您将能够访问MyEMS Admin UI和Web UI,默认端口分别为8001和80,初始登录凭据已提供。
155 0
|
4月前
|
存储 算法 安全
c++模板进阶操作——非类型模板参数、模板的特化以及模板的分离编译
在 C++ 中,仿函数(Functor)是指重载了函数调用运算符()的对象。仿函数可以像普通函数一样被调用,但它们实际上是对象,可以携带状态并具有更多功能。与普通函数相比,仿函数具有更强的灵活性和可扩展性。仿函数通常通过定义一个包含operator()的类来实现。public:// 重载函数调用运算符Add add;// 创建 Add 类的对象// 使用仿函数return 0;
123 0
|
9月前
|
自然语言处理 编译器 C语言
为什么C/C++编译腰要先完成汇编
C/C++ 编译过程中先生成汇编语言是历史、技术和实践的共同选择。历史上,汇编语言作为成熟的中间表示方式,简化了工具链;技术上,分阶段编译更高效,汇编便于调试和移植;实践中,保留汇编阶段降低了复杂度,增强了可移植性和优化能力。即使在现代编译器中,汇编仍作为重要桥梁,帮助开发者更好地理解和优化代码。
126 25
为什么C/C++编译腰要先完成汇编
|
8月前
|
消息中间件 Linux C++
c++ linux通过实现独立进程之间的通信和传递字符串 demo
的进程间通信机制,适用于父子进程之间的数据传输。希望本文能帮助您更好地理解和应用Linux管道,提升开发效率。 在实际开发中,除了管道,还可以根据具体需求选择消息队列、共享内存、套接字等其他进程间通信方
164 16
|
11月前
|
自然语言处理 编译器 Linux
告别头文件,编译效率提升 42%!C++ Modules 实战解析 | 干货推荐
本文中,阿里云智能集团开发工程师李泽政以 Alinux 为操作环境,讲解模块相比传统头文件有哪些优势,并通过若干个例子,学习如何组织一个 C++ 模块工程并使用模块封装第三方库或是改造现有的项目。
758 56
|
10月前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
1356 14
|
11月前
|
自然语言处理 编译器 Linux