Windows 7,VSC2010
Opencv 2.4.7构建良好,主要适用于我的应用程序,但fontQt和其他相关的Qt文本函数会导致异常(见下面的示例)。
看起来有必要代码的文件(至少)是sources/modules/higgui/src中的window_QT.cpp,但根据我可以设置断点的位置,这些文件不会显示在opencv_higgui项目中。
OpenCV错误:函数/功能未实现(库在没有QT支持的情况下编译)..\opencv\modules\highgui \src\window.cpp,第409行
在cmake gui(cmake 2.8.12.1)中选中了HAVE_QT复选框。发现所有库都正常(gui上没有留下红色)
在build/cvconfig.h中,我看到:
/* Qt support */
#define HAVE_QT5
我发现了这个链接:在这里输入链接描述
但根据稍后发布到线程的内容,看起来应该已经在2.4.7中了。
我真的不明白如何调试cmake的东西——似乎源代码正在寻找定义的HAVE_QT,而可能只定义了HAVE_QT5?
或者,(在我没有真正摸索的地方摸索),我在highgui \CMakeLists.txt中看到了这个片段:
set(highgui_srcs
src/cap.cpp
src/cap_images.cpp
src/cap_ffmpeg.cpp
src/loadsave.cpp
src/utils.cpp
src/window.cpp
)
file(GLOB highgui_ext_hdrs "include/opencv2/${name}/*.hpp" "include/opencv2/${name}/*.h")
if(HAVE_QT5)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
QT5_ADD_RESOURCES(_RCC_OUTFILES src/window_QT.qrc)
list(APPEND highgui_srcs src/window_QT.cpp src/window_QT.h ${_RCC_OUTFILES})
foreach(dt5_dep Core Gui Widgets Test Concurrent)
add_definitions(${Qt5${dt5_dep}_DEFINITIONS})
include_directories(${Qt5${dt5_dep}_INCLUDE_DIRS})
list(APPEND HIGHGUI_LIBRARIES ${Qt5${dt5_dep}_LIBRARIES})
endforeach()
highgui_srcs是否应该包括window_QT.cpp?
我们将非常感谢您的帮助或建议!
感谢
Dave Thomas
虽然您已经提到您的CMake中没有红色项目,并且您已经选择了WITH_QT,但根据我的经验,您需要在CMake中将另外7条关于Qt5的路径填充进去。
你介意检查一下这个吗
在CMake gui中,在搜索字段中键入qt,同时高级正在选择。
应该有QT_QMAKE_EXECUTABLE和一些Qt5XXXX_DIR。
这些都装好了吗?