IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Qt工程CMake编译 -> 正文阅读

[开发工具]Qt工程CMake编译

?

cmake_minimum_required(VERSION 3.5.1)

# https://blog.csdn.net/sinat_31964903/article/details/86615053
#指定Qt路径(按需设置)
#SET(CMAKE_PREFIX_PATH C:/Qt/Qt5.7.0/5.7/msvc2013/lib/cmake)
#list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

project(SmartInjection_CMake)

SET(CMAKE_CXX_STANDARD 14)
SET(CMAKE_CXX_STANDARD_REQUIRED ON)
SET(CMAKE_CXX_EXTENSIONS OFF)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

SET(CMAKE_BUILD_TYPE "Release")


# console/ WinMain(Add_Executalble: + WIN32)
# set(QT_USE_QTMAIN TRUE) 

# 自动生成开关
set(CMAKE_AUTOMOC ON) 
#set(CMAKE_AUTOUIC ON) 
#set(CMAKE_AUTORCC ON) 	

if(CMAKE_VERSION VERSION_LESS "3.7.0")
    set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()

# Add Qt module
find_package(Qt5 COMPONENTS Core Gui Widgets Network Xml REQUIRED)

# Try to find OpenCV
SET(OpenCV_DIR E:/opencv_sourcecode/opencv_4.4.0/build/x64/vc15/lib) # Change to your own path
find_package(OpenCV REQUIRED)
if (OpenCV_FOUND)
    message(STATUS "OpenCV library status:")
    message(STATUS "    version: ${OpenCV_VERSION}")
    message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}" \n)
else ()
    message(FATAL_ERROR "Could not locate OpenCV" \n)
endif()

#Torch release
SET(Torch_DIR E:/Pytorch_ws/libtorch/share/cmake/Torch) # Change to your own path
find_package(Torch PATHS ${Torch_DIR} NO_DEFAULT REQUIRED)

if (Torch_FOUND)
    message(STATUS "Torch library found!")
    message(STATUS "    include path: ${TORCH_INCLUDE_DIRS}" \n)
else ()
    message(FATAL_ERROR "Could not locate Torch" \n)
endif()

include_directories(${PROJECT_SOURCE_DIR}/include)

#配置halcon,include、lib目录,具体的lib在target_link_libraries里(注意不加.lib后缀)
#系统环境变量$ENV,也可以换成自己的绝对路径
include_directories("$ENV{HALCONROOT}/include"
                    "$ENV{HALCONROOT}/include/halconcpp")
link_directories("$ENV{HALCONROOT}/lib/$ENV{HALCONARCH}")

# https://blog.csdn.net/xinjiang666/article/details/105722814

# Get *
set(src_dir .)
foreach(dir ${src_dir})
	string(TOUPPER "${dir}" dir_u)		
	
	
	file(GLOB ${dir_u}_UI_FILES ${dir}/*.ui)
	file(GLOB ${dir_u}_H_FILES ${dir}/*.h)
	file(GLOB ${dir_u}_CXX_FILES ${dir}/*.cpp)	
	
	list(APPEND UI_FILES ${${dir_u}_UI_FILES})
	list(APPEND HEADER_FILES ${${dir_u}_H_FILES})	
	list(APPEND SOURCE_FILES ${${dir_u}_CXX_FILES})
	
endforeach(dir ${src_dir})

# https://blog.csdn.net/bytxl/article/details/50635560
# message(STATUS "    SOURCE_FILES: ${SOURCE_FILES}" \n)
# list(REMOVE_ITEM SOURCE_FILES detect_cuda_compute_capabilities.cpp)
# message(STATUS "    SOURCE_FILES: ${SOURCE_FILES}" \n)

if(UI_FILES)
	qt5_wrap_ui( UIC_SRCS ${UI_FILES}) 
endif()

# *.qrc to qrc_*.cpp 资源文件 
file(GLOB RESOURCE_FILES *.qrc)
if(RESOURCE_FILES)
	qt5_add_resources(RCC_SRCS ${RESOURCE_FILES}) 
endif()

#file(GLOB SOURCE_FILES src/*.cpp)
# file(GLOB SOURCE_FILES src/main.cpp src/detector.cpp )

add_executable(${CMAKE_PROJECT_NAME}  ${SOURCE_FILES} 
				${HEADER_FILES}
				${UIC_SRCS}  # 添加此选项会生成 xxx_autogen 工程 
				#${UI_FILES} # 和${UIC_SRCS} 二选一
				${RCC_SRCS})

target_link_libraries (
        ${CMAKE_PROJECT_NAME}
        ${OpenCV_LIBS}
        ${TORCH_LIBRARIES}
		halcon halconcpp
		Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Xml
)

MESSAGE(${CMAKE_BINARY_DIR}/../)
SET_TARGET_PROPERTIES(${EXECUTABLE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY  "${CMAKE_BINARY_DIR}/../")

# Filter 设置,VS中分类目录直观简洁				
source_group("Form Files" FILES ${UI_FILES})
source_group("Generated Files" FILES ${UIC_SRCS} ${RCC_SRCS} )
source_group("Resources" FILES ${RESOURCE_FILES})

参考:

qt 工程CMakeLists.txt_sinat_31964903的博客-CSDN博客

用 cmake 构建Qt工程(对比qmake进行学习)_Frestone的博客-CSDN博客

qt工程cmakelists编写注意事项_开心萝卜-CSDN博客

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-22 12:33:04  更:2021-11-22 12:34:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:23:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码