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

购物网站首页怎么设计百度首页推广广告怎么做

购物网站首页怎么设计,百度首页推广广告怎么做,网站建设技术,企业网站建设可行性分析 技能训练目录 1.概述 2.详细用法 3.转换规则 4.处理复杂情况 4.1.子项目转换 4.2.条件逻辑转换 4.3.自定义构建步骤 4.4.第三方库依赖 5.转换后手动调整 5.1.检查生成的 CMakeLists.txt 5.2.添加缺失的配置 5.3.优化 CMake 结构 6.常见示例 7.常见问题及解决方法 8.调试…

目录

1.概述

2.详细用法

3.转换规则

4.处理复杂情况

4.1.子项目转换

4.2.条件逻辑转换

4.3.自定义构建步骤

4.4.第三方库依赖

5.转换后手动调整

5.1.检查生成的 CMakeLists.txt

5.2.添加缺失的配置

5.3.优化 CMake 结构

6.常见示例

7.常见问题及解决方法

8.调试技巧

相关链接


1.概述

   pro2cmake.py 是一个将 Qt .pro 项目文件转换为 CMakeLists.txt 文件的实用工具。它能自动解析 Qt 项目配置并生成等效的 CMake 构建脚本,简化从 qmake 到 CMake 的迁移过程。

        该脚本通常位于 Qt 安装目录的 libexec 或 bin 子目录下,例如:

# Linux/macOS
/path/to/Qt/6.x.x/libexec/pro2cmake.py# Windows
C:\Qt\6.x.x\msvc2019_64\libexec\pro2cmake.py

  好像是Qt6之后的版本才有这个。如果找不到,可以下面地址获取最新版本:

https://code.qt.io/cgit/qt/qtbase.git/tree/util/cmake/pro2cmake.py?h=wip/cmake

        最基本的使用方式是直接指定输入的 .pro 文件:

python pro2cmake.py [options] input.pro output_dir

        常见选项:

选项描述
output_dir指定输出的 CMakeLists.txt 文件路径
 input.pro输入的 .pro 或 .pri 文件路径
-p--project设置 CMake 项目名称(默认使用 .pro 文件的 basename)
--qt-version指定 Qt 版本(如 5 或 6,默认自动检测)
--qt-path指定 Qt 安装路径
--verbose启用详细输出模式
--force强制覆盖已存在的输出文件
--cmake-minimum指定 CMake 最低版本(如 3.16),默认 3.5
--recursive递归处理子目录中的 .pro 文件

示例如下:

# 转换单个 .pro 文件
python pro2cmake.py myproject.pro ./build# 递归转换整个项目目录
python pro2cmake.py --recursive ./src ./build

2.详细用法

1.指定输出路径

python pro2cmake.py input.pro -o /path/to/CMakeLists.txt

2.设置项目名称

python pro2cmake.py input.pro --project MyQtProject

3.明确指定 Qt 版本

python pro2cmake.py input.pro --qt-version 6

4.自定义 Qt 安装路径‘

python pro2cmake.py input.pro --qt-path /opt/Qt/6.5.0/gcc_64

5.详细输出模式

python pro2cmake.py input.pro --verbose

3.转换规则

工具会自动处理以下 .pro 文件内容:

1.项目类型

  • TEMPLATE = app → add_executable()
  • TEMPLATE = lib → add_library()

2.源文件和头文件

  • SOURCES → CMake 的 add_executable/add_library 源文件列表
  • HEADERS → CMake 的头文件列表

3.链接库

  • LIBS → target_link_libraries()

4.Qt 模块

  • QT += core gui → find_package(Qt6 COMPONENTS Core Gui REQUIRED)
  • 自动添加对应的 Qt 模块依赖

5.定义和编译选项

  • DEFINES → add_definitions()
  • CFLAGS/CXXFLAGS → add_compile_options()

4.处理复杂情况

4.1.子项目转换

如果 .pro 文件使用 SUBDIRS 模板管理多个子项目:

1.逐个转换:为每个子项目单独运行 pro2cmake.py

2.手动整合:在根目录的 CMakeLists.txt 中使用 add_subdirectory() 包含子项目。

# 根目录 CMakeLists.txt
add_subdirectory(src/core)
add_subdirectory(src/gui)
add_subdirectory(src/plugins)

4.2.条件逻辑转换

.pro 文件中的条件配置(如平台特定代码)需要手动转换为 CMake 的 if() 语句:

.pro 文件示例:

win32 {SOURCES += win_specific.cpp
} else {SOURCES += unix_specific.cpp
}

转换为 CMake:

if(WIN32)target_sources(myapp PRIVATE win_specific.cpp)
else()target_sources(myapp PRIVATE unix_specific.cpp)
endif()

4.3.自定义构建步骤

如果 .pro 文件包含自定义脚本(如预处理、代码生成),需要在 CMake 中使用 add_custom_command() 或 add_custom_target()

# 示例:生成代码文件
add_custom_command(OUTPUT generated_code.cppCOMMAND python generate_code.pyDEPENDS generate_code.pyWORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)add_executable(myapp main.cpp generated_code.cpp)

4.4.第三方库依赖

如果项目依赖非 Qt 库(如 OpenCV、Boost):

1.在 .pro 文件中找到 LIBS 和 INCLUDEPATH 配置。

2.在 CMake 中使用 find_package() 或 add_library() 添加依赖。

# 示例:添加 OpenCV 依赖
find_package(OpenCV REQUIRED)
target_link_libraries(myapp PRIVATE ${OpenCV_LIBS})
target_include_directories(myapp PRIVATE ${OpenCV_INCLUDE_DIRS})

5.转换后手动调整

5.1.检查生成的 CMakeLists.txt

重点检查:

  • 源文件路径是否正确(特别是相对路径)。
  • Qt 模块依赖是否完整(如 Qt6::NetworkQt6::Xml)。
  • 编译选项和 定义add_compile_options()add_definitions())。

5.2.添加缺失的配置

1.资源文件.qrc

qt_add_resources(myapp "resources" RESOURCES resources.qrc)

2.UI 文件.ui

qt_wrap_ui(UI_HEADERS mainwindow.ui)

3.MOC 文件(如果自动生成失败)

set(CMAKE_AUTOMOC ON)

5.3.优化 CMake 结构

建议将复杂逻辑拆分为模块:

project/
├── CMakeLists.txt       # 根配置
├── cmake/               # 自定义模块
│   ├── FindQt6.cmake
│   └── MyUtils.cmake
└── src/├── CMakeLists.txt   # 子项目配置

6.常见示例

一般项目片段:

# 转换项目
python pro2cmake.py myproject.pro -o CMakeLists.txt --qt-version 6 --verbose# 检查生成的文件
vim CMakeLists.txt# 使用 CMake 构建
mkdir build && cd build
cmake ..
cmake --build .

复杂项目转换片段:

假设 .pro 文件包含:

# 条件编译
contains(DEFINES, DEBUG) {DEFINES += ENABLE_LOGGING
}# 第三方库
INCLUDEPATH += $$PWD/thirdparty/include
LIBS += -L$$PWD/thirdparty/lib -lmylib# 自定义构建步骤
system(scripts/gen_version.py $$VERSION_FILE)

转换为 CMake:

# CMakeLists.txt
if(DEFINED DEBUG)target_compile_definitions(myapp PRIVATE ENABLE_LOGGING)
endif()# 第三方库
include_directories(${CMAKE_SOURCE_DIR}/thirdparty/include)
link_directories(${CMAKE_SOURCE_DIR}/thirdparty/lib)
target_link_libraries(myapp PRIVATE mylib)# 自定义构建步骤
add_custom_target(generate_versionCOMMAND python ${CMAKE_SOURCE_DIR}/scripts/gen_version.py ${VERSION_FILE}WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
add_dependencies(myapp generate_version)

7.常见问题及解决方法

  • 找不到 Qt 模块:检查 CMAKE_PREFIX_PATH 是否指向 Qt 安装目录。
  • 编译错误:检查源文件路径和依赖项是否正确。
  • 缺失定义:在 CMake 中添加 add_definitions(-DMY_DEFINE)

8.调试技巧

  1. 保留原始配置:在生成的 CMakeLists.txt 中添加注释,标记对应的 .pro 配置。
  2. 使用 CMake 工具链:为跨平台构建配置 toolchain.cmake
  3. 自动化测试:编写测试脚本验证转换后的项目能否正常编译运行。

通过以上步骤,你可以系统性地将复杂 Qt 项目从 .pro 转换为 CMake。转换后建议进行全面测试,确保功能与原项目一致。

相关链接

  • CMake 官网 CMake - Upgrade Your Software Build System
  • CMake 官方文档:CMake Tutorial — CMake 4.0.3 Documentation
  • CMake 源码:https://github.com/Kitware/CMake
  • CMake 源码:CMake · GitLab
  • 中文版基础介绍: CMake 入门实战 | HaHack
  • wiki: Home · Wiki · CMake / Community · GitLab
http://www.ritt.cn/news/7718.html

相关文章:

  • 做网站网站关键词是什么aso关键字优化
  • 东营区住房和城乡建设局网站上google必须翻墙吗
  • 商城类网站建设步骤杭州百度推广代理公司哪家好
  • 常德论坛市民留言板广州seo排名收费
  • 政务公开加强网站建设白杨seo
  • 网站被黑是什么原因nba排名赛程
  • 做网站bbs是什么意思免费广州seo
  • 网站的优化方案个人如何优化网站有哪些方法
  • wordpress怎么查看数据库seoul怎么读
  • 武汉网站建设多少钱360优化大师最新版的功能
  • 淘宝客模板 带程序自动采集 淘宝客网站源码 最新懒人淘宝客源码手机百度高级搜索
  • 公司内部网站系统seo综合查询国产
  • 网站首页适配规则青岛seo结算
  • 专业做蜂蜜的网站关键词优化seo排名
  • 顺德定制网站建设优化什么建立生育支持政策体系
  • 服务器的做网站空间免费影视软件靠什么赚钱
  • 温州市企业网站制作百度搜索服务
  • 响应式html5网页模板热狗seo优化外包
  • 茂名市电白区住房和城乡建设局网站手机百度2020最新版
  • 网站建设合同浩森宇特品牌推广营销
  • 基于.net音乐网站开发全网热搜关键词排行榜
  • 网站建设计划书怎么写友情链接交换网址大全
  • golang做网站怎么样51link友链
  • 江西省住房建设部官方网站挖掘爱站网
  • wordpress内页php页面深圳搜索引擎优化seo
  • 做论坛网站怎么赚钱吗seo公司是什么
  • 公司注销预审在什么网站做产品故事软文案例
  • 一个专门做试题的网站seo长沙
  • 怎样制作网页超链接seo优化首页
  • 克拉玛依网站建设四年级2023新闻摘抄