当前位置: 首页 > news >正文

dz整站免费网站建设seo比较好的公司

dz整站免费网站建设,seo比较好的公司,德州网站建设招聘,长沙企业名录大全 湖南设想 项目文件较多,全部放在一个目录下就像依托答辩。 希望能将头文件放入include,ui文件放入ui,源文件放入src。 为了将Qt代码和一般非Qt代码分离开,进一步地: 将Qt源文件放入qt_src,普通源文件放入sr…

设想

项目文件较多,全部放在一个目录下就像依托答辩。

希望能将头文件放入include,ui文件放入ui,源文件放入src

为了将Qt代码和一般非Qt代码分离开,进一步地:

  • 将Qt源文件放入qt_src,普通源文件放入src
  • 将Qt头文件放入qt_include,普通头文件放入include
  • 将Qt ui文件放入ui

并且使用set(CMAKE_AUTOUIC ON)set(CMAKE_AUTOMOC ON)来让它自己处理。

过程中还是遇到一些问题,通过看官方文档和其他人的提问得以解决,在这里分享一下。

目录结构 && CMakeLists.txt

简化问题,就暂时只搞了顶层一个CMakeLists.txt

cmake_minimum_required(VERSION 3.1)set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_PREFIX_PATH /opt/Qt/6.3.2/gcc_64 /opt/paddlepaddle)
set(EXE main)
project(${EXE})aux_source_directory(qt_src SRC)
aux_source_directory(src SRC)
aux_source_directory(qt_src SRC)FILE(GLOB QT_INC "qt_include/*.h")
list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS "ui")
add_executable(${EXE} ${SRC} ${QT_INC})find_package(Qt6 REQUIRED COMPONENTS Widgets)
find_package(OpenCV 4 REQUIRED)
find_package(FastDeploy REQUIRED)target_include_directories(${EXE} PUBLIC${FASTDEPLOY_INCS} include qt_include)target_link_directories(${EXE} PUBLIC /usr/lib/seetaface6)
target_link_libraries(${EXE}PUBLIC Qt6::Widgets${OpenCV_LIBS}${FASTDEPLOY_LIBS}SeetaAgePredictor600SeetaAuthorizeSeetaEyeStateDetector200SeetaFaceAntiSpoofingX600SeetaFaceDetector600SeetaFaceLandmarker600SeetaFaceRecognizer610SeetaFaceTracking600SeetaGenderPredictor600SeetaPoseEstimation600SeetaQualityAssessor300tennis_haswelltennis_pentiumtennis_sandy_bridgetennis)

主要看一下根目录,设想里面已经说了我的放置策略。

 ## 项目根目录
$ ls
build  CMakeLists.txt  include  qt_include  qt_src  src  ui

下面是目录详细内容,不过不是我们的重点。

 ## 普通源文件目录
$ ls src
app.cpp         FaceAction_demo.cpp  PPMatting_StaticLib_cpu.cpp  video.cpp
emotion.cpp     handler.cpp          step.cpp
FaceAction.cpp  model.cpp            to.cpp
 ## 普通头文件目录$ ls include
app.h      FaceAction.h  model.h                    step.h  video.h
emotion.h  handler.h     PPMatting_StaticLib_cpu.h  to.h
 ## Qt代码源文件目录$ ls qt_src
cv2seetaimage.cpp  main.cpp           register_widget.cpp  user_info.cpp
faceinfo.cpp       mainfunction.cpp   seetafacetools.cpp
facelogin.cpp      mainwindow.cpp     settingmodel.cpp
login_widget.cpp   register_info.cpp  trans.cpp
 ## Qt头文件目录
$ ls qt_include
cv2seetaimage.h  login_widget.h  register_info.h    settingmodel.h
faceinfo.h       mainfunction.h  register_widget.h  trans.h
facelogin.h      mainwindow.h    seetafacetools.h   user_info.h
 ## ui文件目录$ ls ui
facelogin.ui     mainfunction.ui  register_info.ui    user_info.ui
login_widget.ui  mainwindow.ui    register_widget.ui

问题 && 解决

1. 批量添加ui文件和.h文件

笨方法是手动,把文件一个一个加进去,这样不够方便。
对于源文件,我们都知道可以用aux_source_directory()来添加,但是它只会添加源文件,不会添加目录下的.h文件和.ui文件。

解决方法:

FILE(GLOB UI "ui/*.ui")
FILE(GLOB INC "include/*.h")

提一句,有看到说FILE GLOB邪恶的,也许有什么缺点,暂且没有过度关注。

2. AUTOUIC找不到ui文件

由于采用set(CMAKE_AUTOUIC ON)的方式处理ui文件,编译时会报错找不到ui文件。

需要将ui文件夹加入AUTOUIC的搜索目录,这样AUTOUIC处理时才能找到ui文件。
解决方法:

list(APPEND CMAKE_AUTOUIC_SEARCH_PATHS "ui")

注意:是CMAKE_AUTOUIC_SEARCH_PATHS,而不是AUTOUIC_SEARCH_PATHS。这个把我坑惨了。

接下来可能会继续报错找不到生成的对应的ui_XXX.h头文件,可以尝试以下选项之一:

set(CMAKE_INCLUDE_CURRENT_DIR ON)# 其实只要这一条就够了,后面两条似乎也可以。
include_directories(${CMAKE_BINARY_PATH})
include_directories(${CMAKE_CURRENT_BINRAY_PATH})

因为自动生成的ui_XXX.h头文件是在构建目录下的,添加它即可。

3. AUTOMOC找不到定义(undefined to 'vtable for XXX'

这个是最让我头疼的,cmake官网也没有说怎么解决。(这部分还专门翻译了一下,见我的另一篇博客:cmake-qt AUTOMOC)

看到网上的解释,意思是如果你不在add_executable()中添加使用了Qt元系统的头文件,那么AUTOMOC就不会处理这些头文件。

所以我们把Qt的头文件加入到add_executable()即可,这也是我为什么将普通头文件和Qt头文件分离开的原因之一(因为普通头文件不需要,虽然加上也没错)。

add_executable(${EXE} ${SRC} ${INC})

4. 资源文件

  • 待办

我想后面如果要添加资源文件,那么可能会有类似的问题,遇到了再回来补充。

http://www.tj-hxxt.cn/news/113340.html

相关文章:

  • 江西省上饶市建设局网站淘宝客怎么做推广
  • 自己电脑上做的网站 怎么让别人看大连网站seo
  • 网站建设会计分录怎么做百度信息流平台
  • 微网站开发微网站建设培训方案
  • b2b网站建设费用在线网站seo诊断
  • 密云住房建设委员会网站微信scrm系统
  • 网站开发合同书网络舆情软件免费入口
  • 四川建设厅官方网站九大员通知百度关键词推广多少钱
  • 嘉兴五县两区网站建设网站维护主要做什么
  • 深圳市政府网站建设情况网店推广运营策略
  • 深圳快速网站制作优秀网页设计公司
  • 地方o2o同城网站源码seo营销技巧培训班
  • 深圳网站搭建搜易网服务介绍
  • 深圳公司做年报网站百度关键词优化软件网站
  • 郑州郑州网站建设河南做网站公司哪家好宣传网站站点最有效的方式是
  • 盘锦市政建设集团网站鼓楼网站seo搜索引擎优化
  • 有建设网站的软件吗电商培训机构
  • 做衣服接订单的网站网页设计实训报告
  • app网站制作软件营销软文800字范文
  • 网站搜索引擎优化方法百度搜索入口
  • 青海网站建设设计济南今日头条最新消息
  • 做网站php软件淘宝客推广一天80单
  • 网站icp备案费用营销型网站策划书
  • 网站开发平台开发做教育培训应该注册什么公司
  • 专门做网站开发的公司东莞网站建设推广
  • 在线海报免费制作郑州专业seo哪家好
  • 山西建设局网站首页阿亮seo技术顾问
  • 如何将自己做的网站上传发布外链的步骤
  • 做淘宝客要自己的网站2023北京封控了
  • 网站备案手机号跨国网站浏览器