1、當使用makefile自動推導的功能時編譯器報錯ccJS7JEh.s: Assembler messages: ccJS7JEh.s:5: Error: invalid instruction suffix for `push' ccJS7JEh.s:7: Error: invalid inst ...
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