makefile学习之编译器报错问题

1、当使用makefile自动推导的功能时编译器报错
ccJS7JEh.s: Assembler messages:

ccJS7JEh.s:5: Error: invalid instruction suffix for `push'

ccJS7JEh.s:7: Error: invalid instruction suffix for `push'

\ccJS7JEh.s:14: Error: operand type mismatch for `call'

ccJS7JEh.s:39: Error: invalid instruction suffix for `push'

百度了很多方法但是都没有看到有相关的说明,看到有的地方说(使用的是chatgpt)是版本不兼容导致,于是我看了下自己电脑里配置的环境,

发现了有wingw和之前其它的gcc版本,将wingw删除从和gcc多余的版本去除后编译正常

我怀疑主要是mingw的原因,因为wingw是64的我的gcc都是x86的,后面我将gcc另一个版本回退也正常了,所以这里主要是mingw造成的

2、第二次修改:

可以通过修改c/c++的编译器来解决该问题:
在vs code扩展里面进入c/c++的配置,搜索Compiler Path配置如下图,后重启打开vscode即可,第一个方法虽然可以,但是会导致vscdoe无法识别c库代码,提示很多警告而且导致无法在vs上运行,当然如果你是嵌入式开发直接只用makefile的话也不影响好这里gcc的环境需要在环境变量中先配置好

 

 提供一个mingw版本:
https://blog.csdn.net/weixin_59243359/article/details/129219628

 

posted @   lqxhgd  阅读(268)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示