跨平台项目的结构设计

发布于:2022-12-07
阅读时长:1分钟

简介

本文是根据经验并结合 [[工程目录结构设计]] 的目录结构所设计的跨平台的项目的一些编译规则

各平台预编译宏

内置宏

 - linux: __linux__  - windows: WIN32_WIN32_WIN32_WIN64_WIN64_WIN64_  - android: __ANDROID__     - armeabi: __arm__     - armeabi-v7: __arm__     - arm64-v8a: __aarch64__     - x86: __i386__     - x86_64: __x86_64__     -更多的宏可 参考这里  - xcode: __APPLE__     - ios: TARGET_OS_IPHONE     - ios 模拟器: TARGET_IPHONE_SIMULATOR     - mac: TARGET_OS_MAC     - 其他的内置宏请参考这里       - 注:系统默认只有宏 __APPLE__, 其他的宏需要引用头文件 TargetConditionals.h  - FreeBSD: __FreeBSD__  - Unix: __unix__unix__

自定义

如果需要自定义宏,建议以以下风格定义  - linux: __LINUX__  - arm: __ARM__

通用预编译宏

 - X64  - NODEBUG

编译规则

  1. 编译脚本放在 builds 下对应的平台的目录里。
  2. 编译脚本命名 build.sh
  3. 像 arm_linux 这种多种开发板类型的情况,应当使用对应的型号作为平台名称在 builds 下创建目录,例如 hisi3531hisiv300。因为在交叉编译的时候需要加载不同的编译器,所以脚本也不通用,不如直接分开会更清晰一些。(笔者没见过需要分别编译几十个平台的项目,十个以下这么管理不会乱)
  4. 使用 cmake 构建的项目,cmake 的缓存文件应放在当前目录下的 build 中 (即 builds/(platforms)/build,该目录由 build.sh 脚本创建与删除)。
最后更新于:2024-03-27