Mingw 版本不对引起的错误

Qt 找不见名称与ctypes找不见 dll

undefined reference to `__imp__ZN15QGuiApplicationC1ERiPPci’

Clion 使用 TDM-GCC10.3.0 编译 Qt(使用mingw7.3) 时出现错误:

undefined reference to `__imp__ZN15QGuiApplicationC1ERiPPci'

FileNotFoundError: Could not find module ‘xxx.dll’ (or one of its dependencies). Try using the full path with constructor syntax

之后 把Clion 的编译工具链换成了 Qt 的 mingw7.3,再编译 rtsp_parser(KWT项目里的,使用了用 TDM-GCC10.3.0 编译的opencv3.4.16)时,做成 exe 时一切正常,做成dll 让 python 的ctypes 调用时出现异常

(用 np.ctypeslib.load_library("librtsp_parser",".")):

FileNotFoundError: Could not find module 'F:\KWT_tasks\Rtsp_study\rtsp_parser_cpp\cmake-build-debug\librtsp_parser.dll' (or one of its dependencies). Try using the full path with constructor syntax

其实,出现上面这个错误第一时间应该看目录是否正确,依赖是否都放对了位置,是否放全了,还有建议用 numpy 的 np.ctypeslib.load_library("librtsp_parser",".") ,比 ctypes 自带的好。

总结

这两个都是 mingw 版本不对引起的,qt 都用自带的 mingw7.3,后者 rtsp_parser 依然用编译opencv的 TDM-GCC10.3.0 编译出的 dll 就没问题。

你可能感兴趣的:(C++,c++,python)