项目基本算法已经完成,甲方需要一个可以运行的demo。目前,程序能在自己的电脑上正常运行。移植到其他win7系统上,运行失败。
寻找各种解决办法,baidu找到两个办法:
1.使用静态链接的方法,这种生成的exe太大,放弃。
2.将对应需要的dll拷贝到exe的执行目录下,这种虽然文件多,但是易操作,选择。
我的环境windows7 + Visual Studio 2010 + opencv2.4.7,各种基本的配置省略。
1.打开项目配置页->c/c++->代码生成->运行库,设置成多线程调试DLL(/MD)(release版的程序选择MD,这一步是为了添加程序运行需要的运行库)
2.F7生成exe,然后把对应的dll库拷贝到exe的文件夹下面。将此文件夹作为一个整体发送给甲方。(具体需要拷贝哪些dll库可以使用visual studio的dependents查看,方法如下)
使用dependents查看exe所需要的dll库:
1.开始->所有程序->Microsoft Visual Studio 2010 ->Visual Studio Tools->Visual Studio 2010 命令提示.
2.跳转到exe所在根目录下,输入dumpbin /dependents stabilization_KLT.exe,就会有如图所示结果。
我们需要添加libgsl.dll和四个opencvdll库,除此还需额外添加opencv_ffmpeg247.dll,不然总提示读取视频失败。下面的几个DLL文件在上面步骤一修改运行时库就已经添加了。
实测在其他win7中可以正确运行。