使用Clion编辑器Qt遇到的坑

本文介绍了一个使用CMake构建的项目,集成了Qt5、OpenCV和DarkNet等库,详细配置了CMakeLists.txt文件,包括设置C++标准、Qt5路径、OpenCV和DarkNet的链接,以及PyLon库的配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cmake_minimum_required(VERSION 3.5)

project(glove_sys_cmake LANGUAGES CXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
# qt
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_PREFIX_PATH "/home/reebow/Qt5.14.1/5.14.1/gcc_64")
set(Qt5_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5")
set(Qt5Widgets_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Widgets")
set(Qt5Gui_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Gui")
set(Qt5Network_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5Network")
set(Qt5LinguistTools_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/Qt5LinguistTools")
find_package(Qt5 COMPONENTS Widgets Network REQUIRED)
# QtCreator supports the following variables for Android, which are identical to qmake Android variables.
# Check http://doc.qt.io/qt-5/deployment-android.html for more information.
# They need to be set before the find_package(Qt5 ...) call.

#if(ANDROID)
#    set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
#    if (ANDROID_ABI STREQUAL "armeabi-v7a")
#        set(ANDROID_EXTRA_LIBS
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libcrypto.so
#            ${CMAKE_CURRENT_SOURCE_DIR}/path/to/libssl.so)
#    endif()
#endif()
#opencv
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
set(CMAKE_CXX_STANDARD 14)
set(OpenCV_LIBS opencv_core opencv_imgproc opencv_highgui opencv_imgcodecs)

# darknet 头文件
include_directories(./)
include_directories(/home/reebow/darknet/include/)
# darknet 静态和动态文件目录
link_directories(/home/reebow/darknet/)
link_directories(/home/reebow/cuda/lib64/)


# pylon
set(PYLON_ROOT "/opt/pylon")
include_directories("${PROJECT_BINARY_DIR}")
include_directories("${PYLON_ROOT}/include")

EXEC_PROGRAM("${PYLON_ROOT}/bin/pylon-config" ARGS --cflags OUTPUT_VARIABLE CPPFLAGS)
#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CPPFLAGS}" CACHE STRING "CPPFLAGS")
SET(CPPFLAGS "${CPPFLAGS}" CACHE STRING "CPPFLAGS")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CPPFLAGS}")

EXEC_PROGRAM("${PYLON_ROOT}/bin/pylon-config" ARGS --libs-rpath OUTPUT_VARIABLE LDFLAGS)
#SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LDFLAGS}" CACHE STRING "LDFLAGS")
SET(LDFLAGS "${LDFLAGS}" CACHE STRING "LDFLAGS")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LDFLAGS}")

EXEC_PROGRAM("${PYLON_ROOT}/bin/pylon-config" ARGS --libs OUTPUT_VARIABLE LDLIBS)
SET(LDLIBS "${LDLIBS}" CACHE STRING "LDLIBS")


add_executable(glove_sys_cmake
        main.cpp
        mainwindow.cpp
        mainwindow.h
        mainwindow.ui
        homethread.h
        homethread.cpp
        historywindow.h
        historywindow.cpp
        pylonGrab.cpp
        pylonGrab.h
#        Grab_MultipleCameras.h
#        Grab_MultipleCameras.cpp
        GrabThread.cpp GrabThread.h GrabMultiCameras.cpp GrabMultiCameras.h)


target_link_libraries(glove_sys_cmake PRIVATE Qt5::Widgets Qt5::Gui Qt5::Network ${LDLIBS} ${OpenCV_LIBS} libdarknet.so )

### 使用 CLion 开发 Qt 应用程序 CLion 是 JetBrains 提供的一款强大的 IDE,主要用于 C 和 C++ 的开发。尽管它并非专门为 Qt 设计,但由于其支持 CMake 构建工具以及插件扩展功能,因此可以很好地用于开发 Qt 应用程序。 以下是关于如何配置和使用 CLion 进行 Qt 开发的相关说明: #### 配置环境 为了在 CLion 中成功开发 Qt 应用程序,需要完成以下几项设置: 1. **安装 Qt SDK**: 确保已下载并安装最新版本的 Qt SDK[^3]。这通常可以通过访问官方网站获取。 2. **CMake 支持**: 由于 CLion 基于 CMake 来管理项目结构,所以需要确保项目的 `CMakeLists.txt` 文件正确配置了对 Qt 的支持。例如,在文件中添加如下内容来启用自动模块检测: ```cmake cmake_minimum_required(VERSION 3.15) project(MyQtApp LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_AUTOMOC ON) # 自动处理 moc (Meta Object Compiler) set(CMAKE_AUTORCC ON) # 自动资源编译器 set(CMAKE_AUTOUIC ON) # 自动生成 UI 文件对应的头文件 find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED) # 查找所需的 Qt 组件 add_executable(${PROJECT_NAME} main.cpp MainWindow.ui) # 添加可执行目标 target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Core Qt6::Gui Qt6::Widgets) # 链接库 ``` 3. **安装 Qt 插件**: 虽然是强制性的,但推荐通过 Jetbrains Marketplace 安装名为 “Qt Support” 或类似的插件以增强用户体验[^4]。此插件可以帮助更好地集成 Qt 功能到编辑器界面中。 #### 创建新项目 当一切准备就绪之后,按照常规方式创建一个新的 CMake 工程即可。只需记得调整上述提到的关键部分——即修改 `CMakeLists.txt` 并引入必要的 Qt 模块。 #### 编写代码示例 下面是一个简单的例子展示如何利用 Qt 类型编写窗口应用: ```cpp #include <QApplication> #include <QWidget> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.resize(800, 600); window.setWindowTitle("My First Qt App with CLion"); window.show(); return app.exec(); } ``` #### 测试运行 最后一步就是测试您的应用程序能否正常工作。如果所有依赖都已正确定义,则可以直接点击绿色三角形按钮启动调试会话。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值