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

建设电商网站思想移动网站建设指南

建设电商网站思想,移动网站建设指南,制作网站软件网站,深圳市手机网站建设写在前面的话,为了保持Sceneform-EQR始终是采用最新的filament,每隔一段时间我都会编译filament,并根据新增内容完善Sceneform-EQR。 现由于更换电脑,环境需重新配置。简单记录下编译出错和解决方式。 Sceneform-EQR 是EQ对谷歌“…

写在前面的话,为了保持Sceneform-EQR始终是采用最新的filament,每隔一段时间我都会编译filament,并根据新增内容完善Sceneform-EQR。
在这里插入图片描述

现由于更换电脑,环境需重新配置。简单记录下编译出错和解决方式。

Sceneform-EQR 是EQ对谷歌“sceneform-android-sdk”的扩展,适用于图形和视频,以及增强现实(AR)和虚拟现实(VR)相关领域。它目前集成了 ARCore、AREngine 和 ORB-SLAM,提供多种场景选项,包括 AR 场景、VR 场景和自定义背景场景,以满足不同的原生三维开发需求。


filament官方PBR效果演示图


文章目录

  • 从坑中走出:一次 CMake 构建 Filament Android 库的完整排错过程
    • 一、项目背景与目标
    • 二、构建命令初稿
    • 三、连续踩坑全过程
      • 1. 混用生成器导致缓存冲突
      • 2. source directory 错误
      • 3. 找不到 Ninja 和编译器
      • 4. toolchain 文件语法错误
      • 5. CMAKE\_TOOLCHAIN\_FILE 未生效
      • 6. 成功配置但路径错乱
    • 四、构建成功后的目录结构
    • 五、总结与建议
    • 六、参考文档

从坑中走出:一次 CMake 构建 Filament Android 库的完整排错过程

本文将详细记录我在构建 Google Filament Android 库的过程中,遇到的各种 CMake 报错与环境配置问题,以及逐一解决的思路与方法,希望对使用 CMake 构建跨平台 C++ 工程的你有所帮助。


一、项目背景与目标

Filament 是 Google 开源的跨平台实时渲染引擎,广泛用于安卓、高性能图形渲染、AR/VR 等领域。

我的目标是:

  • 编译出适用于 Android 平台的 aarch64 架构的 Filament 动态链接库(如 libfilament.so);
  • 使用官方提供的 CMake toolchain 文件进行交叉编译;
  • 最终产出可用于 Android 应用集成的 .so 动态库及头文件。

二、构建命令初稿

初始的构建命令如下(位于 filament-1.53.4/out/cmake-android-release-aarch64 目录):

cmake ^-G Ninja ^-DCMAKE_BUILD_TYPE=Release ^-DCMAKE_INSTALL_PREFIX=..\android-release\filament ^-DCMAKE_TOOLCHAIN_FILE=..\..\build\toolchain-aarch64-linux-android.cmake ^..\..

期望:

通过这个命令使用 Ninja 生成 Android 用的 Makefile 构建配置,并交叉编译出适用于 ARM64 的 Android 库。


三、连续踩坑全过程

1. 混用生成器导致缓存冲突

错误信息:

CMake Error: Error: generator : NMake Makefiles
Does not match the generator used previously: Visual Studio 17 2022

原因分析:此前使用过 Visual Studio 构建,并在相同的输出目录下(如 out/cmake-release)使用了不同的构建生成器。

解决方法

  • 删除缓存:
rd /s /q CMakeCache.txt CMakeFiles
  • 或者换一个新的构建输出目录(推荐):
mkdir out/cmake-android-release-aarch64
cd out/cmake-android-release-aarch64

2. source directory 错误

错误信息:

CMake Error: The source directory "/" does not appear to contain CMakeLists.txt.

原因分析
命令行中没有指定有效的源码目录,或者路径拼接出现问题导致 ..\.. 被误解释为 /

解决方法
确保当前目录是 filament/out/cmake-android-release-aarch64,并用相对路径指向 filament 根目录:

cmake ..\..  # 即指向 filament 根目录

3. 找不到 Ninja 和编译器

错误信息:

CMake was unable to find a build program corresponding to "Ninja"
CMAKE_C_COMPILER not set, after EnableLanguage

原因分析

  • 本机未正确安装 Ninja;
  • 或者 PATH 中未包含 Ninja 可执行路径;
  • Toolchain 设置未正确配置 NDK 和交叉编译工具。

解决方法

  • 下载 Ninja 并加入环境变量(推荐使用官方预编译);
  • 确保你的 NDK 路径设置正确,并传递给 toolchain 文件;
  • 也可以使用 ANDROID_NDKANDROID_TOOLCHAIN 显式指定编译工具。

4. toolchain 文件语法错误

错误信息:

file FILE([TO_CMAKE_PATH|TO_NATIVE_PATH] path result) must be called with exactly three arguments
list GET given empty list
get_filename_component called with incorrect number of arguments

原因分析
说明你传入的 NDK 路径、TOOLCHAIN 或系统路径变量未被正确设置,导致 CMake 脚本中的变量为空。

解决方法
检查 toolchain-aarch64-linux-android.cmake 中前几行,是否读取了环境变量如:

file(TO_CMAKE_PATH "$ENV{ANDROID_NDK}" ANDROID_NDK)

此处 $ENV{ANDROID_NDK} 为空,后续 list/get_filename_component 就会失败。

建议

  • 设置环境变量:
set ANDROID_NDK=C:\Android\sdk\ndk\25.1.8937393
  • 或者手动替换 toolchain 中的相关行,直接写死路径调试。

5. CMAKE_TOOLCHAIN_FILE 未生效

现象描述:

Manually-specified variables were not used by the project:CMAKE_TOOLCHAIN_FILE

原因分析
你可能在已有的 CMake 缓存目录中重新执行构建命令,但 CMake 不会重新读取 CMAKE_TOOLCHAIN_FILE,因为该值只在第一次 configure 时生效。

解决方法
删除缓存后重新 configure:

rd /s /q CMakeCache.txt CMakeFiles

6. 成功配置但路径错乱

构建路径:

D:\filament-1.53.4\out\cmake-release\out\cmake-android-release-aarch64

原因分析
你在 out/cmake-release 中再次 cd out/cmake-android-release-aarch64,导致路径变成 out/cmake-release/out/cmake-android-release-aarch64,路径层级错误。

建议
统一使用清晰路径:

D:\filament-1.53.4\out\cmake-android-release-aarch64

四、构建成功后的目录结构

配置成功后,会看到类似如下结构:

out/
├── cmake-android-release-aarch64/
│   ├── CMakeFiles/
│   ├── build.ninja
│   ├── lib/
│   │   ├── libfilament.so
│   │   └── ...
│   └── ...
└── android-release/└── filament/├── include/└── lib/

执行构建命令:

ninja
ninja install

五、总结与建议

问题类型关键点建议
生成器冲突混用了 NMake / Ninja / Visual Studio每次构建新平台前清理缓存
Ninja 未安装构建器不可用下载并配置环境变量
NDK 未配置toolchain 报错设置 ANDROID_NDK 环境变量或写死路径
toolchain 变量为空list/get_filename 错误打印调试变量确认路径是否为空
CMAKE_TOOLCHAIN_FILE 未生效被缓存忽略删除 CMakeCache.txt 重新生成
路径错乱输出路径嵌套混乱使用绝对路径或统一的输出目录结构

六、参考文档

  • Filament 官方文档
  • CMake Toolchain 配置指南
  • Ninja 官方地址
  • CMake 常见报错解读与解决方案

文章转载自:

http://wabLbndE.ggpsw.cn
http://irOBqyZ4.ggpsw.cn
http://DG5QQRix.ggpsw.cn
http://HZKSCLm8.ggpsw.cn
http://3egwzzsQ.ggpsw.cn
http://R9xqxNC2.ggpsw.cn
http://BJrrJM0R.ggpsw.cn
http://yh28uSnp.ggpsw.cn
http://kUoEGAUE.ggpsw.cn
http://NC5sf1Tt.ggpsw.cn
http://4YBbSpFx.ggpsw.cn
http://hwoiCRPt.ggpsw.cn
http://0S8pZoOi.ggpsw.cn
http://aP7HUHpm.ggpsw.cn
http://mqX8v6l3.ggpsw.cn
http://dwne0Dzs.ggpsw.cn
http://FFEUqcAe.ggpsw.cn
http://jd4UXhhi.ggpsw.cn
http://pqyqcYQA.ggpsw.cn
http://f5hu6Gih.ggpsw.cn
http://Y1iz6JIK.ggpsw.cn
http://cd4e64ui.ggpsw.cn
http://DrYnEW5W.ggpsw.cn
http://cPiopkMd.ggpsw.cn
http://AWK9WaKF.ggpsw.cn
http://ZVepqPgd.ggpsw.cn
http://GjCLJ0aB.ggpsw.cn
http://93QorkSv.ggpsw.cn
http://NGdxoyoj.ggpsw.cn
http://yGFv7r4f.ggpsw.cn
http://www.dtcms.com/wzjs/775719.html

相关文章:

  • 广东网站制作公司排名wordpress 置顶 函数
  • 网站建设的单可以刷吗广州建站外贸网站
  • 网站模板及源码wordpress福利
  • 长沙旅游网站建设Wordpress前端用户头像
  • 如何做网站动态图标安卓优化神器
  • 视频点播网站开发wordpress电影站
  • 资讯主题 wordpress哈尔滨seo优化代理
  • 桐乡市住房建设局网站公示网站pv uv统计
  • 网站建设人才调研可以做的电影网站
  • 专教做美食的网站购物网站建设价格
  • 山西太原网站建设公司男女直接做的视频视频网站
  • 台州市建设局网站广东建设集团
  • 网站的ftp账号和密码是什么建站系统cms
  • 做网站电脑配置新站如何让百度快速收录
  • 怎么做免费网站被收录手机网站开发利用流程
  • 北京高端网站制作网站后台关键词怎么设置
  • 做网站品牌国外网站访问速度慢
  • 澄海玩具网站建设公司东莞市生态环境局
  • 网站建设与运营就业做文案策划需要知道些什么网站
  • 不同网站对商家做o2o的政策做领域细分行业需要建网站吗
  • 辽宁省建设厅科技中心网站微网站模板代码
  • vip解析网站怎么做的深圳十大外贸公司排名
  • 无锡网站建设 微信wordpress添加版块
  • 国家建设标准发布网站在哪里河南省建设人才信息网站
  • 商城网站开发培训学校旅游电子商务网站排名
  • 江西建设职业技术学院网站节能 建材 工程标准
  • 站长工具seo查询软件公司都是干什么的
  • qq互联网站备案号辽宁省建设厅官方网站
  • 网站建设默认字体重庆帝一网络网站建设专家
  • 简单网站的代码公关公司的主要业务