make: *** [packet.o] Error 127
今天在windows2012R2服务器上面编译c++工程时报了下面的错误,
g++ -g -Wall -Wextra -c packet.cpp
make: g++: Command not found
make: * [packet.o] Error 127
看着这个错误,好像是编译工具出的问题,百度了一下,说是这个主要是没有安装gcc-c++.x86_64,导致的问题,但是我这个环境时研发部的开发环境,换言之,如果有这个问题,开发工作早就不能进行了,所以说这个应该和编译工具没有关系的,然后我又看了我的工程目录,发现一个问题,就是在我的makefile文件中,源文件应该是.cc文件来代表c++工程的文件,而由于习惯问题,我建立的源文件是.cpp类型的,应该是这个问题导致的编译不通过,更改了文件后缀,果然编译通过了。
在网上查找了一些东西,希望看到.cc&.cpp编译过程中有哪些不同,没找到,大多讲的时不同后缀的c++文件的区别,还给列一个列表,不同环境下c++文件如何命名,这些东西有一个人写就够了,别那么多,烂大街的货就别那么多了。下面我自己写的,当然有从网上搜的,个人总结。
我们都知道一件事,c++源文件经历四个步骤形成可执行文件,分别是,预编译,编译,汇编,链接这四个步骤,然后我百度了.cc&.cpp文件在不同阶段的命令,我猜测是因为使用gcc编译的缘故,故而将gcc&g++的命令写在下面,比较直观,不需要解释,我们就能看出来他们的区别:
预编译阶段:
g++:: g++ -E .cpp -o .i
gcc:: gcc -E .cc -o .i
编译阶段:
g++:: g++ -S .cpp > .s
gcc:: gcc -S .i -o .s
汇编阶段:
g++:: g++ -c .s -o .o (这一步使用了编译阶段生成的*.s文件)
gcc:: gcc -c .s -o .o
链接阶段:
g++:: g++ Link_file_names -o *.o
gcc:: gcc .o -o
通过查看生成的makefile文件,可以观察到,使用的是,gcc编译的,故而该错误可以通过更改c++源文件的后缀名来消除,所以只需要更改后缀名称即可,
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Mybatis使用问题汇总-采坑和实践
xlecho编辑整理,欢迎转载,转载请声明文章来源。欢迎添加echo微信交流学习。 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!! JDK1.8分组问题产生的SQL需求 需求一 传入的值数据结构为:List(Map) Dao层的代码: List<RecordPo> selectConditionRecord(List<Map<String, String>> list); xml层代码: <select id="selectConditionRecord" resultMap="BaseResultMap" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" separator=";"> select * from RECORD <where> <if test="item.code != null and item.code != ''"> code = ...
- 下一篇
Maven使用经验总结(持续更新)
使用Maven将所有依赖的库打入到一个可执行jar包 pom.xml配置如下: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${jdk.version}</source> <target>${jd
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7设置SWAP分区,小内存服务器的救世主