不知道从什么时候开始自己的mingw就好像用不了了,报了上面的错误,我觉得莫名其妙,什么信息都没有,怎么找原因。
然后在网上看了一些博客,比如这篇博客,里面有这样一段话:
然后就猜想吧,应该是在系统目录下有一个同名的文件,优先级高于咱们的这个库文件,所以调用了那个优先级高的文件,但是虽然这两个文件同名,其实他们的内容不一样,所以最后咱们的c++程序test.exe没法跑。
怎么办,我都不知道这个库的名字,它的报错根本就没提供任何信息。
我首先试了一下吧test.exe放到C:\MinGW\bin下运行,发现可以运行,这必然是因为上面图片中的A/B起了作用(否则如果是C/D起作用,程序还是没法跑),也就是说在C:\MinGW\bin下有那个导致了错误的关键文件,于是我就把C:\MinGW\bin下全部ddl库文件拷贝到test.exe所在文件夹,然后一个个删除,一个个测试(观察删除后程序是否可以运行),最后让我找到了,这个傻逼文件名字叫libstdc+±6.dll。
找到文件名了就好说,我直接用了Windows的全局搜索,搜索libstdc+±6.dll文件,发现了这些同名的文件:
是哪一个呢,我猜了一下,应该不是filezilla或者git(这两个软件我早就有了,而这个问题最近才有),所以很大可能是GtkSharp下的那个libstdc+±6.dll,试了一下,删掉GtkSharp,成功运行test.exe,这就是罪魁祸首,害我肝到爆。但是又不能乱删,这是个啥,了解了一下,是Windows构架里面的(与图形界面有关),不敢删,说不定是更新Windows的时候加进去的。
最后怎么办呢,只能在我的C++项目文件下加入这个libstdc+±6.dll库了,然后也能跑。
溜了溜了,再熬夜就要gg了