当前位置: 首页 > 知识库问答 >
问题:

指定cmake使用qt4构建opencv

百里飞捷
2023-03-14

我的Ubuntu电脑同时安装了qt4和qt5,因为它与一些lib兼容。目前,我想用qt4重建opencv(用于highgui)。但cmake始终使用qt5(默认版本)。我编辑了CMakeLists。txt文件

find_package(Qt4 COMPONENTS QTCORE QTGUI)
// I remove HAVE_QT5 variable
if(HAVE_QT)
  status("    QT 4.x:"            HAVE_QT        THEN "YES (ver ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH} ${QT_EDITION})" ELSE NO)
  status("    QT OpenGL support:" HAVE_QT_OPENGL THEN "YES (${QT_QTOPENGL_LIBRARY})" ELSE NO)
else()
...................

重建opencv后,我使用ldd libopencv_highgui检查依赖项。所以

libqt5核心。所以5 =

Highgui仍然链接到Qt5。有人能帮我吗?谢谢

共有1个答案

张璞
2023-03-14

要使用这两种Qt版本,请使用找到的变量。

# QtWidgets 5
find_package(Qt5Widgets)
if(Qt5Widgets_FOUND)
    set(QT5_FOUND TRUE)
    set(QT5_INCLUDE_DIRS "${Qt5Widgets_INCLUDE_DIRS}")
    set(QT5_LIBRARIES "${Qt5Widgets_LIBRARIES}")

# QtGui 4
find_package(Qt4 ${MINIMUM_REQUIRED_QT4_VERSION} COMPONENTS QtCore QtGui)
if(QT_FOUND)
    set(QT4_FOUND TRUE)
    set(QT4_INCLUDE_DIRS "${QT_INCLUDE_DIR};${QT_QTCORE_INCLUDE_DIR};${QT_QTGUI_INCLUDE_DIR}")
    set(QT4_LIBRARIES "${QT_QTCORE_LIBRARY};${QT_QTGUI_LIBRARY}")

如您所见,现在两个版本都可用,并且可以使用各自的include/library变量。

 类似资料:
  • 本文向大家介绍C++ 使用CMake生成构建环境,包括了C++ 使用CMake生成构建环境的使用技巧和注意事项,需要的朋友参考一下 示例 CMake可以从单个项目定义为几乎所有编译器或IDE生成构建环境。以下示例将演示如何将CMake文件添加到跨平台的“ Hello World” C ++代码。 CMake文件始终被命名为“ CMakeLists.txt”,并且应该已经存在于每个项目的根目录中(可

  • 我正在尝试在我的Windows平台上构建<code>PoDoFo库</code>(用作API)。这是使用完成的。文件说明如下。不幸的是,我是CMake的新手,我无法从中获得很多东西。 在Windows上构建PoDoFo Windows 需要 2.6.x。您可以从 cmake.org 下载它。 在Windows上,PoDoFo可以构建为共享库或静态库。不支持两者都构建。默认情况下,只会构建共享库。如

  • 我正在尝试在Windows 7上使用Cmake构建OpenCV。我选择使用Visual Studio 10编译器。 我收到以下错误: C:/程序文件 (x86)/CMake 2.8/共享/生成 2.8/模块/CMakeCXX 中的生成错误信息:37 (get_filename_component): get_filename_component调用不正确的参数数调用堆栈(最近的调用优先):CMak

  • 前面我们讲到了 cmake 常用的变量,相信“cmake 即编程”的感觉会越来越明显,无论如何,我们仍然可以看到 cmake 比 autotools 要简单很多。接下来我们就要集中的看一看 cmake 所提供的常用指令。在前面的章节我们已经讨论了很多指令的用法,如 PROJECT,ADD_EXECUTABLE,INSTALL,ADD_SUBDIRECTORY,SUBDIRS,INCLUDE_DIR

  • CMake 是一个开源的跨平台构建工具,Cocos2d-x 是一个开源的跨平台游戏引擎,两者十分契合。 Cocos2d-x 决定自 3.17 版本开始,支持 CMake 的全平台构建。支持的平台包括 Android (NDK)、iOS、macOS、Linux、Windows(VC++ compiler),同时支持通过 CMake 将引擎部分进行预编译,并在新的构建过程中重用预编译的引擎库。 基本概