检查 OpenCV 是不是使用来自 C++ 代码的 GTK 支持进行编译

Posted

技术标签:

【中文标题】检查 OpenCV 是不是使用来自 C++ 代码的 GTK 支持进行编译【英文标题】:Check if OpenCV is compiled with GTK support from C++ code检查 OpenCV 是否使用来自 C++ 代码的 GTK 支持进行编译 【发布时间】:2019-08-29 08:53:40 【问题描述】:

我的问题与以下相同: OpenCV GTK+2.x error

在 OpenCV 可用但尚未安装 GTK 支持的系统中部署我的代码时,我遇到了这个问题。我无法控制这些系统中的 OpenCV 安装。

如果不依赖 C++ 代码的 GTK 支持,我如何区分 OpenCV 的编译位置,可能不依赖于捕获异常?在这些情况下,我会简单地避免调用 imshow。

【问题讨论】:

类似:#if defined (HAVE_GTK) 应该可以工作。您也可以使用getBuildInformation 查看构建信息 【参考方案1】:

您可以通过执行ldd opencv-lib 来检查依赖关系,并使用例如解析输出。正则表达式来检查某种 gtk 库。

或者使用这种方法:linux/gcc: ldd functionality from inside a C/C++ program

setenv("LD_TRACE_LOADED_OBJECTS", "1", 1); FILE *ldd = popen("/lib/libz.so");

【讨论】:

以上是关于检查 OpenCV 是不是使用来自 C++ 代码的 GTK 支持进行编译的主要内容,如果未能解决你的问题,请参考以下文章

使用 Opencv 时 C++ 调试断言失败

C++ 指针和数组

检查子进程是不是处于活动状态(Windows、C++)

如何更改此 C++ (OpenCV) 代码以获取图像而不是视频?

用 C++ 绘制图像的光谱(fftw,OpenCV)

如何将来自不同图像的多个描述符存储在 C++ 和 OpenCV 中的向量向量中?