当前位置:   article > 正文

在x86环境用vscode替代qt creator_vscode和qtcreator

vscode和qtcreator

需要一个CMakeLists.txt作为你的模板

  1. cmake_minimum_required(VERSION 3.0)
  2. project(test)
  3. set(CMAKE_AUTOMOC ON)
  4. set(CMAKE_AUTORCC ON)
  5. set(CMAKE_INCLUDE_CURRENT_DIR ON)
  6. set(CMAKE_BUILD_TYPE "Release")
  7. set(CMAKE_CXX_STANDARD 11)
  8. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  9. set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
  10. aux_source_directory(./src SRC_LIST)
  11. find_package(Qt5 COMPONENTS Core Widgets Gui Sql Xml Network REQUIRED)
  12. add_executable(${PROJECT_NAME} ${SRC_LIST})
  13. target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml Qt5::Sql Qt5::Network)

创建一个build文件夹,在里面使用指令

  1. cmake ..
  2. make

执行生成的可执行文件,成品如下图

后续只需要对src下的文件做出改变,其余不用动

在这次中,卡点的其实是两个。

一个是find_package()的库找不到。

qt在找库时默认会去/usr/lib/cmake中去查找对应的.cmake文件,如果没有就会报错

解决办法:

以这个问题举例,去下载qt5serialbus源码,下载下来后解压,进去后创建build文件夹qmake一下,make出来源码,然后将里面的代码make install,问题解决

  1. qmake ..
  2. make install

其次是cmake在链接时

提示你undefined reference to 'vtable for widget',问题发生在链接阶段而不是编译阶段,原因并不在于.cpp或者.h文件问题,而是在cmake中没有加set(CMAKE_AUTOMOC ON)

这句话主要作用就是会自动生成链接你的moc文件

为什么选用vscode而不是qtcreator呢?vscode从底部一步一步搭起来,我对我的项目知根知底,哪里出错了一目了然。而qtcreator隐瞒了太多细节了,用vscode写qt让我对底层,cmake了解有很多帮助

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/657323
推荐阅读
相关标签
  

闽ICP备14008679号