在x86环境用vscode替代qt creator

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

cmake_minimum_required(VERSION 3.0)
project(test)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

aux_source_directory(./src SRC_LIST)  

find_package(Qt5 COMPONENTS Core Widgets Gui Sql Xml Network REQUIRED)

add_executable(${PROJECT_NAME}  ${SRC_LIST})

target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Xml Qt5::Sql Qt5::Network)

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

cmake ..
make

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

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

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

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

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

解决办法:

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

qmake ..
make install

其次是cmake在链接时

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北海__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值