VIP20
本课程属于:007-Qt界面开发 编程基础与工程化 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

跨平台编译故障诊断与工程实践

📚 共计 30 章节
01
跨平台编译概述
什么是跨平台编译、为什么需要跨平台、主流方案对比 (CMake vs Makefile vs SCons)
概念对比
02
开发环境搭建
Windows MinGW/MSVC · Linux GCC/Clang · macOS Xcode Command Line Tools
环境工具链
03
CMake入门
CMakeLists.txt基本语法 · project() / add_executable() · cmake_minimum_required()
语法基础
04
变量与缓存
set()命令 · 变量作用域 · 缓存变量CACHE · 环境变量读取
变量缓存
05
条件判断
if/elseif/else/endif · 逻辑运算符 · 字符串比较 · 文件存在性判断
逻辑控制
06
循环与列表
foreach循环 · while循环 · list操作 · 字符串操作
循环列表
07
函数与宏
function()定义 · macro()定义 · 参数传递 · 返回值处理
函数宏
08
库的构建
add_library() · STATIC/SHARED/MODULE · 目标属性设置
库构建
09
头文件管理
target_include_directories() · include_directories() · 系统/第三方头文件
头文件包含
10
链接管理
target_link_libraries() · link_directories() · 动态/静态库链接顺序
链接库
11
编译选项
target_compile_options() · add_compile_options() · 编译器特性检测 (CMAKE_CXX_STANDARD)
选项标准
12
生成器表达式
$<...>语法 · 条件编译 · 配置相关代码 · 平台相关代码
表达式条件
13
自定义命令
add_custom_command() · add_custom_target() · 构建后/预构建事件
命令事件
14
安装与打包
install()命令 · CPack配置 · 生成安装包 (NSIS/DMG/Deb)
安装打包
15
测试框架
enable_testing() · add_test() · CTest集成 · Google Test集成
测试CTest
16
查找第三方库
find_package() · FindXXX.cmake编写 · Config模式与Module模式
查找第三方
17
FetchContent
外部依赖管理 · Git仓库拉取 · 版本控制 · 缓存策略
依赖Fetch
18
工具链文件
Toolchain文件编写 · 交叉编译配置 · 系统根目录设置
工具链交叉编译
19
Windows平台避坑
路径分隔符 · DLL搜索路径 · Windows.h冲突 · Unicode编码问题
Windows避坑
20
Linux平台避坑
RPATH与RUNPATH · 符号可见性 · glibc版本兼容 · ABI兼容性
Linux兼容
21
macOS平台避坑
Framework处理 · Bundle结构 · 代码签名 · @rpath路径
macOS签名
22
Android NDK编译
NDK环境配置 · ABI选择 (armeabi-v7a/arm64-v8a/x86_64) · STL选择
AndroidNDK
23
iOS编译
Xcode工程生成 · iOS SDK选择 · Bitcode处理 · 签名与证书
iOSXcode
24
WebAssembly编译
Emscripten工具链 · CMake与Emscripten集成 · 内存模型 · 文件系统模拟
WasmEmscripten
25
性能优化
编译缓存 (CCache) · 并行编译 (-j) · LTO链接时优化 · PGO
优化缓存
26
调试与诊断
--trace模式 · --debug-output · cmake --build · Ninja vs Makefile
调试诊断
27
版本管理
CMakePresets.json · 版本号管理 · 语义化版本 · CHANGELOG自动生成
版本Presets
28
CI/CD集成
GitHub Actions · GitLab CI · Jenkins · Docker构建环境
CI/CD自动化
29
常见错误与解决
找不到库 · 链接错误 · 宏定义冲突 · 编译器版本不兼容 · 路径含空格
错误排错
30
实战项目
从零构建跨平台GUI应用 (Qt/FLTK) · 完整CMakeLists.txt · 多平台发布流程
实战GUI