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 @ 2023-10-29 21:53  lqxhgd  阅读(226)  评论(0编辑  收藏  举报