test

Posted ghostriderli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了test相关的知识,希望对你有一定的参考价值。

opencv3.30 编译总结

主要总结了Windows上编译 opencv 的一些问题,后续,编译Linux 或者交叉编译的的时候在做总
结。 具体步骤以及常见的问题可以在How to setup Qt and openCV on Windows中找到解决办法,如果有其
它问题可以参看博客如下:

注意: 以上的所有的博客都指出 CMAKE_BUILD_TYPE 选为 Realase/RelWithDebInfo,但
是在这个条件下编译,部分『属于』 Debug 的函数不能使用(例如,imshow()),而这些 API 在
调试的时候很常用,因此最好编译出两个版本,Release 和 Debug 时分别使用对应动态库。

自己在编译过程中遇到的问题

平台:

  • WIN10 64bit
  • QT5.8(MinGW5.32 + QT Creater 4.21)
  • Cmake 13.1

编译工具链问题

如果在编译过程中报错如下:

    undefined reference to ‘__mingw_vfscanf‘
    ...
    undefined reference to ‘__mingw_*‘

    undefined reference to ‘__ms_vsnprintf‘
    ...
    undefined reference to ‘__ms_vs*‘

造成上述问题的原因是:电脑里面有多个 MinGW* 的版本,执行 Cmake 生成的文件时,其可执行
命令是从环境变量里面最前面一个里面找到的,不一定是QT内置的 MingGW-w64 版本的命令。 需要
注意的是QT内置的 MinGW-w64 不是 MinGW。

则有可能是编译工具的问题,解决步骤如下:

  • 检查电脑上是否有QT内置的 MinGW 之外的版本(如安装了codeblocks,或者自己下载了MinGW);
  • 将找到的除QT内置版本外的MinGW从环境变量里去除();
  • 将QT内置版本的MinGW增加到系统环境变量 PATH 里面;

D:QtQt5.8.0Toolsmingw530_32in

D:QtQt5.8.05.8mingw53_32in

最好两个都加进去

  • 此时执行编译过程中使用的命令就是QT内置的 MinGW 的命令。

如果系统中存在多个编译工具(为了保险),则将QT的内置 MinGW 环境变量上移至最前面,编
译完成之后再修改回来

::hypot has not been declared

stackflow 上的大神的方法是将报错的位置 安装Q位置:/Qt/Qt5.8.0/Tools/mingw530_32/i686-w64-mingw32/include/c++/cmath 1119 行 using::hypoy改成using::_hypot 之后重新编译。

编译的时候如果没有出现这个问题就不要事先修改,等到出现这个错误之后再修改。

我个人担心后面运行出错,编译结束之后又修改回来了。

undefined reference to cv::imshow(cv::String const&, cv::_InputArray const&)

如果编译 opencv 之后只出现这个错误,而其他部分的 opencv 的 API 可以用,则可能是编译的
时候 CMAKE_BUILD_TYPE 选择成了 Realase/RelWithDebInfo。 imshow() 以及部分 API 可
能只有在 CMAKE_BUILD_TYPE == Debug 时编译的动态库才可以使用。 编译好的动态库是 *d.dll/*d.dll.a

Cmake 配置时勾选 build_opencv_world 出现问题

待续










以上是关于test的主要内容,如果未能解决你的问题,请参考以下文章

webstorm代码片段的创建

json [test snippet]这是一个测试片段#test

java代码在片段活动中不起作用

csharp c#test片段

这两个代码片段之间有区别吗?如果有,那又如何? [复制]

片段中ListView的setOnItemClickListener