allzy 2015-12-12 15:32 原文
这个文件不难找,随便搜一下就能下到。但问题是下完了放哪?看了看网上的建议,貌似应该放到C盘的system32里面。
我按照这个来了,尝试编译运行,发现又跳出来所谓”libgcc_s_sjlj-1.dll“这个东西缺失,想要的(编译运行后能得到的)控制台程序还是没有。
在网上到处搜了搜,最终明白这是个动态链接库的问题。
C++文件的编译运行有两种链接方式,动态链接和静态链接,其具体分析和区别可以参考这篇博客。
这里只讨论解决这个问题的简单方案。如果codeblocks版本是10.12以上,且编译器为MinGW,那么可以按照如下步骤解决这个小小的问题:
方案A:将链接方式设置为静态链接,打开codeblocks,settings -> compiler -> global compiler settings ->(保险起见,可以先重置编译器,即reset defaults) -> linker settings -> other linker options ,在空白栏中加入“-static”指令。效果如图:
方案B:修复动态链接库,这些dll文件一般存放在C:\Program Files (x86)\CodeBlocks\MinGW\bin 中,可以将别人的没出错的dll全部拷贝过来,也可在网络下载。重启电脑,打开codeblocks即可。
当然两个方案一起用,鲁棒性更强。
如果codeblocks版本不同,编译器也不同,也可仿照以上方法一试,不过不保证有效。为了避免dll问题,以及确保编程时的好心情,建议在使用IDE的时候关闭杀毒软件(无论是国产的还是国外的)和XX管家之类的程序,这些有时候会误报你自己写的小程序,并且有可能影响到dll文件。
推荐阅读