之前在写一个cpp的项目,不想用一些比较臃肿的IDE,所以就直接vscode+Makefile了
然后,因为是在windows下开发,遇到了一些神坑了。。
首先是make clean (别问我为什么不用cmake,是懒得配置
1 | clean: |
很正常的代码,但是就是运行崩了
并不是因为rm的原因,因为这是运行在powershell下的结果
首先,它报出了这样的错误
1 | process_begin: CreateProcess(NULL, rm sb.exe src/main.o src/ELFReader.o, ...) failed. |
似乎是找不到命令的原因。
后来我发现在powershell底下,rm后面的文件与文件之间必须要是逗号分隔……
修改后,还是爆出一样的错误,经过一系列的搜索并没有搜出个什么来
后来经朋友提醒……加个引号试试
1 | clean: |
很有道理,那么CreateProcess第二个就像一个参数了
果然,不一样的报错了
1 | "rm sb.exe src/main.o src/ELFReader.o" |
好的,你告诉我为什么在Windows下会调用的是bash(万脸问号)???
结合起来搜索,似乎说这是因为git bash的原因 ´_>`
不过,我并不打算管了,Windows下开发不用ide坑太多了
果断转移到Linux底下去
另外就是,MinGW在window下的依赖问题
如果是mingw-w64,则能很好的进行64位程序的编译,但是,当我加上-m32
正常的默认设置是不支持编译32位程序的,但SJLJ的是支持的
重新安装过后,-m32能正常编译了,但是程序运行会爆出
应用程序无法正常启动0xc000007b
的错误,似乎也是一些依赖问题
但暂时不打算解决了,要想编译32位的程序,大可另外下个w32版本的mingw
Windows实在……太坑了´_>`