之前将需要的工具都下载并安装了,最主要的一个工具IDE:Visual Studio2013在上一篇中并没有说明,一个是因为比较基础,二是我是在安装MySQL Workbench时顺带自动安装的,所以具体情况真的记不清了。这一篇我们来说说如何将零散的工具组织进VS供我们使用。
项目打包
首先,在建立项目前,我需要提前想好项目结束后如何打包导出,度娘显示现在大多使用InstallShield来完成,我决定将收藏夹变为博客中加工过的内容就是从转载一篇使用InstallShield的文章开始的。
为了显示InstallShield是如何处理配置时的include和lib的,我配置了OpenCV,建立了一个小项目作为示例。所以这里顺带讲完OpenCV在VS2013中的配置。
建立项目+OpenCV
1.File->New->Project->Visual C++->Empty Project
填写Name,Location,Solution默认create new solution,Solution Name默认与Project同名
1.5但如果你要加入一个已有的solution
可以先导入该solution:File->Open->Project/Solution,选择一个Solution的.sln文件
然后新建项目时选择Solution为Add to solution,选择一个solution
2.创建源文件
里面代码暂且不写
3.配置OpenCV
设置Include Directories和Library Directories
include Directories:
在文件夹中,结构是这样的
Library Directories:
设置Linker->Input的Additional Dependencies
其中具体内容可以看OpenCV安装文件中的lib和staticlib中.lib文件有哪些,其中d结尾的为Debug模式下使用的,不带d结尾的为Release模式下使用。
Debug下可以复制:
opencv_ml2413d.lib
opencv_calib3d2413d.lib
opencv_contrib2413d.lib
opencv_core2413d.lib
opencv_features2d2413d.lib
opencv_flann2413d.lib
opencv_gpu2413d.lib
opencv_highgui2413d.lib
opencv_imgproc2413d.lib
opencv_legacy2413d.lib
opencv_objdetect2413d.lib
opencv_ts2413d.lib
opencv_video2413d.lib
opencv_nonfree2413d.lib
opencv_ocl2413d.lib
opencv_photo2413d.lib
opencv_stitching2413d.lib
opencv_superres2413d.lib
opencv_videostab2413d.lib
IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
zlibd.lib
然后改变配置模式为Release再配置一遍,lib文件用不以d结尾的
4.更改警告信息C/C++->Preprocessor Definitions,同样要改Debug和Release的,在使用不安全函数时不报错
5.写代码
6.放入一张名为1.png的图片在项目文件夹下
7.用Debug运行
用Release运行
这是由于Release模式下采用/MD来编译,改为/MT即可,相关资料见:
https://msdn.microsoft.com/en-us/library/2kzt1wy3(VS.80).aspx
http://blog.csdn.net/xiaowei_cqu/article/details/7586449
此时会在solution和project下有Debug和Release的文件夹,其中有Air_Band.exe文件
注1:如果安装opencv时没有自动将相关dll文件加入Path,需要将/opencv/build/x86/bin加入Path或将其下文件拷贝到项目根目录下。
注2:加载文件时出现debug assertion failed expression _pfirstblock == phead等错误,将Debug运行时库改为/MDd。见http://blog.csdn.net/giantpoplar/article/details/47295877
现在可以开始打包项目了
先下载InstallShield2013,安装
首次启动需要填写注册码(未成功,先试用吧)
按照教程http://www.wuleba.com/23892.html进行
最后运行是在这里选择
之后就会出现setup.exe项目安装文件
下面讲其他的配置,同OpenCV类似
Kinect SDK(Debug&Release)(从安装文件夹中找):
VC++Directories中
Include files C:\Program Files\Microsoft SDKs\Kinect\v1.6\inc
Library files C:\Program Files\Microsoft SDKs\Kinect\v1.6\lib\x86
Linker->Input中
Additional Dependencies Kinect10.lib
OpenNI2、NiTE2(Debug&Release)(从安装文件夹中找):
VC++Directories中
Include files D:\OpenNI\NITE2\Include
D:\OpenNI\Include\Win32
D:\OpenNI\Include
Library files D:\OpenNI\NITE2\Lib
D:\OpenNI\Lib
Linker->Input中
Additional Dependencies OpenNI2.lib NiTE2.lib
并且将OpenNI2和NiTE2安装文件夹中的Redist文件夹下所有文件拷贝到项目文件夹中。
CFugue:
将源码需要用到的导入即可。
OpenCV的lib在VS2015及以上版本可能不好用,可以尝试自行编译或使用更高版本的OpenCV
http://blog.csdn.net/u013832707/article/details/53127710
https://sourceforge.net/projects/opencvlibrary/
其他奇怪问题可见:
https://stackoverflow.com/questions/21177190/c-no-object-file-generated
http://blog.csdn.net/yapingxin/article/details/48527103
https://github.com/acristoffers/CEF3SimpleSample/issues/8
https://stackoverflow.com/questions/19575747/error-lnk2038-mismatch-detected-for-msc-ver-value-1600-doesnt-match-valu
http://blog.csdn.net/sinat_36594170/article/details/70444480
https://zhidao.baidu.com/question/2141972339582660388.html
发现一个下载缺失dll的网址:http://dllworld.org/how-to-install-dll-file/