By 狗头军师猪千戒DoggerAndPigger Jeffery第1 页共12 页使用VS2015 编译以及静态编译opencv3 记录一直不知道怎样静态编译opencv 并连接使用,网上的教程很零散,这里做个总结记录。下载 opencv3git clone https://github.com/Itseez/opencv.git打开 CMAKE-GUI,选择源码路径和构建路径点击 configure,选择合适的编译器,有两个选项可选,x86 以及x64。编译两个版本的时候需要分别选择。点击 Finish 后By 狗头军师猪千戒DoggerAndPigger Jeffery第2 页共12 页取消以下的一些选项上边是对应于编译动态链接库版本的,如果编译静态链接库版本,需要取消以下选项为了 opencv 的最终生成的库打包成一个 world,需要选择如下选项最后点击 generate 即可在 VS2015 里点击生成,批生成By 狗头军师猪千戒DoggerAndPigger Jeffery第3 页共12 页选择如上两个INSTALL,点击生成。然后再到目录下边查看 install 目录即可把文件复制到指定目录,然后把 x86/vc14/bin 添加到 path 里。下边记录使用静态编译以及动态链接库的不同一般来说,一旦在 cmake 设置了 BUILD_SHARE_LIBRARY 选项,就是要编译 dll,此时,在 VS2015 里,对于各个编译的解决方案,有的是编译成lib,有的是 dll,譬如如下两项他们在代码生成都是 MDd(Debug), MD(release)也就是 vs2015 的组件也是动态链接的。By 狗头军师猪千戒DoggerAndPigger Jeffery第4 页共12 页而库的生成方式有同时也有一些是编译成静态库,但是这些配置不统一,最后出来的用的是动态链接的库。此时不能随意更改选项,我原来这里以为改了选项就可以编译成静态库,这样是会编译错误的,因为 cmake 配置好的是动态库的选项。如果需要配置静态库的选项,则需要重新运行 cmake,取消如下选项,这个时候,所有的代码生成配置就是MTd,或者 MT。也就是说 VS2015 的组件库是静态链接进去的,在裸机上不会提示说缺少 vsxxx140d.dll 之类。By 狗头军师猪千戒DoggerAndPigger Jeffery第5 页共12 页这个时候,可以发现所有都是 lib 静态库配置编译完成后,静态库会在 staticlib 文件夹中出现而动态编译的时候,则出现By 狗头军师猪千戒DoggerAndPigger Jeffery第6 页共12 页在bin 目录会出现 opencv 的 dllBy 狗头军师猪千戒DoggerAndPigger Jeffery第7 页共12 页对于在实际编程后配置的时候如果是静态的配置,单击右键,属性设置如图所示的包含...