在此先声明,移植到其他计算机我并没有尝试,但是应该不会有很大问题,其实移植到其他计算机出现的最多问题就是找不动态库(dll),解决方法有两个:
第一个,将需要的动态库和.exe文件放在一起就OK了。很多人会说,我怎么知道需要哪些动态库,其实只要你双击.exe文件,如果缺少动态库,会有提示的,我们只要根据提示,自己找到动态库,并复制到.exe所在文件夹即可。
第二个,就是把需要动态库路径添加的环境变量中,建议还是第一个吧,简单快捷。
言归正传,说说我自己遇到的几个大坑。
第一个:把.exe单独复制到另外一个问价夹,双击无法运行。把所需的dll复制过来,一切OK!
第二个:也是大家最容易忽略的一个和最不容易找到原因的一个。
先说现象,把.exe和所需的dll放到一个文件夹里,双击还是无法运行,而且没有提示缺少什么动态库,直接中断。
原因:检查程序源码,是否在源码中用到了相对路径的地方,如果,你把.exe移植到其他地方,程序会按照相对路径寻找所需的文件,这当然是找不到了。
解决方法有两个:
第一个:把相对路径转换成绝对路径,但是这样限制非常大。如果你所需的文件移动了位置,程序就找不这个文件了。或者如果移植到其他计算机上,也无法找到这个文件。因此,不建议使用这样方法。
第二个:是利用带参主函数,将所需文件路径当做一个参数,传递给主函数,这样就灵活很多。推荐使用这种方法。