标签:调试 define str 需要 函数 http 遇到的问题 电脑 fscanf
主要总结了Windows上编译 opencv 的一些问题,后续,编译Linux 或者交叉编译的的时候在做总
结。 具体步骤以及常见的问题可以在How to setup Qt and openCV on Windows中找到解决办法,如果有其
它问题可以参看博客如下:
注意: 以上的所有的博客都指出 CMAKE_BUILD_TYPE 选为 Realase/RelWithDebInfo,但
是在这个条件下编译,部分『属于』 Debug 的函数不能使用(例如,imshow()
),而这些 API 在
调试的时候很常用,因此最好编译出两个版本,Release 和 Debug 时分别使用对应动态库。
平台:
如果在编译过程中报错如下:
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。
则有可能是编译工具的问题,解决步骤如下:
PATH
里面;D:\Qt\Qt5.8.0\Tools\mingw530_32\bin
D:\Qt\Qt5.8.0\5.8\mingw53_32\bin
最好两个都加进去
如果系统中存在多个编译工具(为了保险),则将QT的内置 MinGW 环境变量上移至最前面,编
译完成之后再修改回来
::hypot
has not been declaredstackflow
上的大神的方法是将报错的位置 安装Q位置:/Qt/Qt5.8.0/Tools/mingw530_32/i686-w64-mingw32/include/c++/cmath
1119 行 using::hypoy
改成using::_hypot
之后重新编译。
编译的时候如果没有出现这个问题就不要事先修改,等到出现这个错误之后再修改。
我个人担心后面运行出错,编译结束之后又修改回来了。
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
待续
标签:调试 define str 需要 函数 http 遇到的问题 电脑 fscanf
原文地址:https://www.cnblogs.com/GhostRiderLi/p/10225918.html