ubuntu下 cmake初始化脚本 以及 qt依赖

背景

  • ubuntu 24 LTS

cmake 初始化脚本

github.com/friendlyano...

bash 复制代码
sudo apt update
sudo apt install -y \
  python3 \
  python3-dev \
  python3-pip \
  python-is-python3 \
  python3-venv

sudo apt install python3-pip
sudo apt install pipx

pipx install cmake-init

pipx ensurepath
source ~/.bashrc

cmake-init --help
css 复制代码
cmake -S . -B build
cmake --build build

qt6 系统安装

vcpkg window下方便一点,Conan 安装qt6有点坑,就用了系统安装的

ubuntu 24 安装的qt为6.4版本的

csharp 复制代码
sudo apt install qt6-base-dev qt6-tools-dev qt6-l10n-tools libgl1-mesa-dev libglu1-mesa-dev qt6-qpa-plugins mesa-utils libgl1-mesa-dri

CMakeLists.txt

cmake-init 初始化之后,使用nvim 打开,然后先添加依赖

project 之后

scss 复制代码
# ===============================
# ✅ Qt6 配置(加在这里)
# ===============================
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

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

find_package(Qt6 REQUIRED COMPONENTS Widgets)

# ===============================

结尾

scss 复制代码
target_link_libraries(myqtapp_exe PRIVATE Qt6::Widgets)

nvim qt6没提示的解决

.clangd

bash 复制代码
CompileFlags:
  Add:
    - "-I/usr/include/x86_64-linux-gnu/qt6"
    - "-I/usr/include/x86_64-linux-gnu/qt6/QtWidgets"
    - "-I/usr/include/x86_64-linux-gnu/qt6/QtCore"
    - "-I/usr/include/x86_64-linux-gnu/qt6/QtGui"
  CompilationDatabase: build/dev

效果图

成品的效果图1

调试的效果图

远程vnc

上面的如果直接运行,ubuntu是没有界面的,无法显示,x11只能通过电脑,手机考虑vnc

安装系统命令

vbscript 复制代码
sudo apt install tigervnc-standalone-server
sudo apt install openbox

~/.vnc/xstartup

bash 复制代码
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

# 启动一个简单的终端(如果你需要的话,不需要可以删掉这行)

# 保持进程运行,防止 VNC 闪退
exec /usr/bin/openbox-session
perl 复制代码
vncserver :1 -geometry 1920x1080 -depth 24 -localhost no

vncserver -kill :1
ss -lntp | grep 5901

sudo ufw status
sudo ufw allow 5901

云主机添加规则,ubuntu内检查系统防火墙

外部测试连接

yaml 复制代码
telnet xxxx 5901

~/.bashrc 最后添加

ini 复制代码
export DISPLAY=:1
export QT_QPA_PLATFORM=xcb

source ~/.bashrc

运行后的效果图

www.realvnc.com/en/connect/...

安卓谷歌play 下载

相关推荐
小七在进步7 小时前
string的使用(1)
c++·visual studio
白杨尚青8 小时前
C++进阶篇(六):map 和 set 的模拟实现——用红黑树封装 mymap/myset(迭代器 + operator[])
开发语言·c++·迭代器·stl·set·map·红黑树
kloc10 小时前
聊天室项目入口网关子服务的实现
linux·c++
csdn_aspnet14 小时前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
小七在进步15 小时前
string的使用(2)
c++
青少儿编程课堂15 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
wo_jack17 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
青少儿编程课堂18 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
草莓熊Lotso19 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
David猪大卫1 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习