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 下载

相关推荐
aramae31 分钟前
C++ IO流完全指南:从C标准库到C++流式编程
服务器·c语言·开发语言·c++·后端
_wyt0011 小时前
c++里的族谱:树
c++·
@三十一Y2 小时前
C++:AVL树实现
c++
haolin123.2 小时前
类和对象(上)
开发语言·c++
ShineWinsu2 小时前
对于Linux:传输层协议UDP原理的解析
linux·c++·面试·udp·协议·传输层·计算机系统
LingzhiPi2 小时前
零知派ESP32--AS5600磁吸旋钮音量控制器
c++·单片机·嵌入式硬件
小保CPP3 小时前
OpenCV C++车型识别1-图像预处理
c++·人工智能·opencv·计算机视觉
库克克3 小时前
【C++】C++11 包装器function 与 绑定器 bind
开发语言·c++
小小龙学IT3 小时前
C++ Placement New 与显式析构:手动对象生命周期管理的艺术
c++·windows·mfc
小保CPP4 小时前
OpenCV C++车型识别2-形状匹配
c++·人工智能·opencv·计算机视觉