./build.sh:行1: g++: 未找到命令的错误问题在centos操作系统下面如何解决

news/2024/9/24 23:28:24/

目录

  • g++: 未找到命令报错解释
  • g++: 未找到命令解决方法
  • 题外:gcc和g++的区别
  • g++常用命令

centos操作系统,执行一个bash,bash命令很简单,就是用g++编译一个C++的程序。报告错误:

./build.sh:行1: g++: 未找到命令

g++: 未找到命令报错解释

这个错误表明在执行名为 build.sh 的脚本文件时,第一行尝试调用 g++ 命令,但是系统中没有找到 g++ 这个命令。g++ 是GNU项目的一部分,是一个编译C++源代码的交叉编译器。
可以检查确认是否已经安装了 g++,可以通过在终端中输入 g++ --version 来检查是否安装了g++以及其版本信息。

g++: 未找到命令解决方法

安装g++

yum install gcc-c++ libstdc++-devel

安装g++

题外:gcc和g++的区别

  • gcc是C语言编译器。
  • g++是C++语言编译器。

更准确一点的说法:

  • gcc调用了C compiler
  • g++调用了C++ compiler

gcc和g++的主要区别

  1. 对于 .c和.cpp文件,g++统一当做cpp文件编译,gcc则分别当做c和cpp文件编译。

  2. 编译文件时,g++会自动链接标准库STL,而gcc不会自动链接STL。

  3. gcc在编译C文件时可使用的预定义宏较少,在编译cpp文件时会加入一些额外的宏。

  4. 在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ (但这并不代表 gcc –lstdc++ 和 g++等价,只能说g++约等于gcc -xc++ -lstdc++ -shared-libgcc。)

项目g++gcc
对于 .c和.cpp文件g++统一当做cpp文件编译gcc则分别当做c和cpp文件编译。
编译文件时g++会自动链接标准库STLgcc不会自动链接STL。
宏链接g++可以链接额外的宏gcc在编译C文件时可使用的预定义宏较少,在编译cpp文件时会加入一些额外的宏

在用gcc编译c++文件时,为了能够使用STL,需要加参数 –lstdc++ (但这并不代表 gcc –lstdc++ 和 g++等价,只能说g++约等于gcc -xc++ -lstdc++ -shared-libgcc。)

如果实在分不清楚,那也不需要分清楚,直接用g++就对了。

g++常用命令

备考。

[root@callcenter ~]# g++ --help

用法:g++ [选项] 文件…
选项:
-pass-exit-codes 在某一阶段退出时返回最高的错误码
–help 显示此帮助说明
–target-help 显示目标机器特定的命令行选项
–help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,…]
显示特定类型的命令行选项
(使用‘-v --help’显示子进程的命令行参数)
–version 显示编译器版本信息
-dumpspecs 显示所有内建 spec 字符串
-dumpversion 显示编译器的版本号
-dumpmachine 显示编译器的目标处理器
-print-search-dirs 显示编译器的搜索路径
-print-libgcc-file-name 显示编译器伴随库的名称
-print-file-name=<库> 显示 <库> 的完整路径
-print-prog-name=<程序> 显示编译器组件 <程序> 的完整路径
-print-multiarch Display the target’s normalized GNU triplet, used as
a component in the library path
-print-multi-directory 显示不同版本 libgcc 的根目录
-print-multi-lib 显示命令行选项和多个版本库搜索路径间的映射
-print-multi-os-directory 显示操作系统库的相对路径
-print-sysroot 显示目标库目录
-print-sysroot-headers-suffix 显示用于寻找头文件的 sysroot 后缀
-Wa,<选项> 将逗号分隔的 <选项> 传递给汇编器
-Wp,<选项> 将逗号分隔的 <选项> 传递给预处理器
-Wl,<选项> 将逗号分隔的 <选项> 传递给链接器
-Xassembler <参数> 将 <参数> 传递给汇编器
-Xpreprocessor <参数> 将 <参数> 传递给预处理器
-Xlinker <参数> 将 <参数> 传递给链接器
-save-temps 不删除中间文件
-save-temps= 不删除中间文件
-no-canonical-prefixes 生成其他 gcc 组件的相对路径时不生成规范化的
前缀
-pipe 使用管道代替临时文件
-time 为每个子进程计时
-specs=<文件> 用 <文件> 的内容覆盖内建的 specs 文件
-std=<标准> 指定输入源文件遵循的标准
–sysroot=<目录> 将 <目录> 作为头文件和库文件的根目录
-B <目录> 将 <目录> 添加到编译器的搜索路径中
-v 显示编译器调用的程序
-### 与 -v 类似,但选项被引号括住,并且不执行命令
-E 仅作预处理,不进行编译、汇编和链接
-S 编译到汇编语言,不进行汇编和链接
-c 编译、汇编到目标代码,不进行链接
-o <文件> 输出到 <文件>
-pie Create a position independent executable
-shared Create a shared library
-x <语言> 指定其后输入文件的语言
允许的语言包括:c c++ assembler none
‘none’意味着恢复默认行为,即根据文件的扩展名猜测
源文件的语言

以 -g、-f、-m、-O、-W 或 --param 开头的选项将由 g++ 自动传递给其调用的
不同子进程。若要向这些进程传递其他选项,必须使用 -W<字母> 选项。


http://www.ppmy.cn/news/1456833.html

相关文章

Anaconda删除虚拟环境目录pkgs和envs|conda瘦身

这个文件夹里面是专门放不同环境中的包的&#xff0c;只是没有区分环境&#xff0c;都混在一起了&#xff0c; 一般在想要删除一个虚拟环境&#xff0c;除了在命令行中输入conda remove -n your_env_name(虚拟环境名称) --all 然后在envs中删除虚拟环境的文件夹&#xff0c; 还…

Node.js v20.12.2版本执行npm run dev 报openssl 错误2024最新修复方案

Node.js v20.12.2版本执行npm run dev 报openssl 错误2024最新修复方案 故障描述修复方案 故障描述 ERROR SyntaxError: missing ) after argument list C:\Users\xxx\Documents\workspace\WebstormProjects\xxxx\node_modules\webpack\lib\util\createHash.js:135return new …

巩固python1

今天做到一个随机验证码的题&#xff1a; import random as r zmb AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz r.seed(1) code for i in range(4):code r.choice(zmb) print(code)用到了random.seed方法&#xff0c;即随机种子 seed() 函数用于设置随机数生成…

docker部署nginx并配置https

1.准备SSL证书&#xff1a; 生成私钥&#xff1a;运行以下命令生成一个私钥文件。 生成证书请求&#xff08;CSR&#xff09;&#xff1a;运行以下命令生成证书请求文件。 生成自签名证书&#xff1a;使用以下命令生成自签名证书。 openssl genrsa -out example.com.key 2048 …

代码随想录35期Day31-Java

Day31题目 LeetCode122.买股票的最佳时机 核心思想&#xff1a;很简单&#xff0c;只要第二天比第一天贵&#xff0c;就第一天买入&#xff0c;第二天卖出 class Solution {public int maxProfit(int[] prices) {// 只要后一天比这一天价钱高就买&#xff0c;然后第二天卖出…

phpstudy 搭建 upload-labs 文件上传靶场

phpstudy 搭建靶场&#xff1a;下载安装好phpstudy后&#xff0c;下载靶场源码&#xff1a; upload-labs下载地址&#xff1a; https://github.com/c0ny1/upload-labs 下载完压缩文件&#xff0c;解压文件&#xff0c;解压后的文件夹命名为upload--labs 将解压后到文件夹放…

【牛客】Tokitsukaze and Average of Substring

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和。 开一个int类型的前缀和数组pre[30][N]&#xff08;pre[i][j]表示某字符转成的数字 i 在一段区间的前缀个数。因为字母表有‘a’~z…

【MATLAB源码-第204期】基于matlab的语音降噪算法对比仿真,谱减法、维纳滤波法、自适应滤波法;参数可调。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 语音降噪技术的目的是改善语音信号的质量&#xff0c;通过减少或消除背景噪声&#xff0c;使得语音更清晰&#xff0c;便于听者理解或进一步的语音处理任务&#xff0c;如语音识别和语音通讯。在许多实际应用中&#xff0c;如…