Ubuntu22.04下源码编译安装USD-Brep

Ubuntu22.04下源码编译安装USD-Brep

环境: Ubuntu22.04
仓库:https://github.com/NVIDIA-Omniverse/usd-brep
网络环境:需要

简介:2026年10月08日,英伟达开源的一个几何内核;这是继OCC之后,第二款Brep表达的几何库;这里给大家简单介绍一下这个几何库在Ubuntu下的安装过程

下载 usd-brep

gitclone https://github.com/NVIDIA-Omniverse/usd-brep.git

如无法下载,可考虑前往gitee国内仓库下载

执行预安装脚本

$ ./rebuild.sh
$ ./repo.sh build
# 执行完成后,最后提示完成BuildBUILD(RELEASE)SUCCEEDED(Took1.42seconds)

注意,构建的是Release版本,启动gui时,版本应匹配使用release版本启动gui

安装uv命令

使用官方推荐的安装方式(最干净的安装),直接二进制安装

# 安装方案1(推荐)curl-LsSfhttps://astral.sh/uv/install.sh|sh

或

#安装方案2# 确保已安装 pipx (如果尚未安装)sudoaptinstallpipx pipx ensurepath# 使用 pipx 安装 uvpipxinstalluv

注意,不推荐直接使用pip install uv来安装,避免污染环境

执行启动gui时,报错

uv run--locked--groupgui python tools/scripts/smlib_gui.py

报错如下错误:

smlib_gui:config=debugpid=2748084smlib_gui:build_bin=/home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/debug smlib_gui: _omni_solid unavailable: No module named'_omni_solid'smlib_gui: _smlib_dev unavailable: No module named'_smlib_dev'smlib_gui: _smlib_tests unavailable: No module named'_smlib_tests'smlib_gui: debug binaries not found;build debug or pass--releasesmlib_gui: debug SMLib echoes Dump()to stderr;AssertValid reports include file/line. USD Python(pxr)failed to import: No module named'pxr'Expected bindings at(exists=False): /home/myPc/work/code-demo/usd-brep/_build/target-deps/usd/debug/lib/python Set LD_LIBRARY_PATH before starting Python: /home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/debug:/home/myPc/work/code-demo/usd-brep/_build/target-deps/usd/debug/lib Install depsforthat interpreter: /home/myPc/work/code-demo/usd-brep/_build/target-deps/python/bin/python3-mpipinstallnumpy pyvista

提示说不存在下面的一些模块,这是因为编译时,选择的release版本,这个启动的是debug版本的gui,所以不匹配报错;

正确的应该是使用下面的relaese的gui版本

$ uv run--locked--groupgui python tools/scripts/smlib_gui.py--release

报错如下错误:

smlib_gui:config=releasepid=2680540smlib_gui:build_bin=/home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/release smlib_gui:_omni_solid=/home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/release/_omni_solid.cpython-312-x86_64-linux-gnu.so smlib_gui:_smlib_dev=/home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/release/_smlib_dev.cpython-312-x86_64-linux-gnu.so smlib_gui:_smlib_tests=/home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/release/_smlib_tests.cpython-312-x86_64-linux-gnu.so smlib_gui:runtime={"compile_flags":{"SM_DEBUG_CODE":false,"SM_GFX_CODE":true,"SM_GFX_OUTPUT_CODE":true,"SM_GRAPHICS_CALLBACKS":true},"do_graphics":false,"libraries":{"prog_test":{"address":125608894810096,"name":"prog_test_run_suite_by_name","path":"/home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/release/libprog_test.so","symbol":"_Z27prog_test_run_suite_by_namePKcP17ProgTestRunResult"},"smlib":{"address":125609023128848,"name":"smGet_DoGraphics","path":"/home/myPc/work/code-demo/usd-brep/_build/linux-x86_64/release/libSMLib.so","symbol":"_Z16smGet_DoGraphicsv"}}}smlib_gui: release SMLib does notechoDump();AssertValid still runs(no file/line labels). qt.qpa.plugin: From6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin. qt.qpa.plugin: Could not load the Qt platform plugin"xcb"in""even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem. Available platform plugins are: wayland-brcm, wayland-egl, wayland, minimalegl, linuxfb, eglfs, xcb, minimal, offscreen, vnc, vkkhrdisplay.

日志显示,smlib_gui 本身的 C++ 模块和 release 环境都已成功加载,但在初始化图形界面(GUI)时失败了。核心原因是 Qt 6.5.0 及以上版本在 Linux 下依赖一个新的系统库 libxcb-cursor0 来加载 xcb 平台插件,系统当前缺少这个库。解决办法,安装相关qt依赖:

sudoaptinstall-ylibxcb-cursor0

安装完成后,再次执行启动gui命令,启动成功如下:

$ uv run--locked--groupgui python tools/scripts/smlib_gui.py--release


启动后,点击run,出现如上模型
成功!

参考文献:https://github.com/NVIDIA-Omniverse/usd-brep

相关新闻

GDB调试三绝技:变量监控、动态修改与条件断点

GDB调试三绝技:变量监控、动态修改与条件断点

目录 前言 一、git中的常见命令: git常见命令 gitignore介绍 二、gdb预备知识:编译与模式 2.1 gdb常见命令 2.2 断点之用途 2.3 程序的运行与暂停 2.4 堆栈跟踪 三、gdb中的三种调试技巧 3.1 变量监测(watch) 3.2 set…

2026/10/20 11:29:27 阅读更多 →
液态神经网络:用微分方程重塑时间序列建模

液态神经网络:用微分方程重塑时间序列建模

1. 液态神经网络:给“人工神经元”装上时间尺度早在两年前第一次读到关于液态神经网络(Liquid Neural Networks,LNN)的论文时,我的第一反应是:这玩意儿和传统的循环神经网络有什么区别?不就是把…

2026/10/20 11:29:27 阅读更多 →
网关充值的本质:揭秘备付金代付的资金流转与清结算逻辑

网关充值的本质:揭秘备付金代付的资金流转与清结算逻辑

前两天跟一个做电商平台的朋友聊天,他一直在接入支付渠道,聊到后面突然说了句:“网关充值就是备付金代付啊!”语气里带着一种刚想明白的兴奋。这句话乍听有点绕,但细想确实点到了一些做支付结算的人经常说不清的东西。…

2026/10/20 11:29:27 阅读更多 →

最新新闻

diagram-design:如何把复杂系统用图讲清楚

diagram-design:如何把复杂系统用图讲清楚

1. 从一张草图到一套系统:diagram-design 到底在解决什么问题 第一次听到 diagram-design 这个词,很多人会以为它只是一个画图工具的别名,或者某个设计软件的插件。但真正在工程团队里待过几年的人会明白,它指向的是一套完整的、关…

2026/10/20 15:29:19 阅读更多 →
JavaScript数组与字符串底层原理:手写简易ArrayList理解动态数组扩容

JavaScript数组与字符串底层原理:手写简易ArrayList理解动态数组扩容

聊到 JavaScript 刷题,数组、字符串和 ArrayList 的简单实现,大概是很多前端开发者在算法入门阶段最先遇到的一组基础题目。早些时候我帮一个学弟梳理面试题,发现一个很有意思的现象:数组的 API 大家都会背,字符串的方…

2026/10/20 15:29:19 阅读更多 →
计算机网络第一章核心考点:分层模型、协议与PDU自测题全解析

计算机网络第一章核心考点:分层模型、协议与PDU自测题全解析

拿到计算机网络第一章的测试题,很多人第一反应就是翻开教材找答案,或者凭感觉做一遍,然后一对答案发现错了一堆。其实第一章的题目非常套路,考点集中、重复率高,只要摸清出题人的逻辑,这套题完全可以稳稳拿…

2026/10/20 15:29:19 阅读更多 →
Axure RP 9 for Mac 中文环境配置:从字体映射到脚本化部署

Axure RP 9 for Mac 中文环境配置:从字体映射到脚本化部署

简介:Axure RP 9 中文破解版面向产品经理、交互设计师及原型设计初学者,用于在 Mac 平台上快速搭建高保真交互原型,解决正版授权成本高、上手门槛大的问题。资源以 zip 压缩包形式提供,整体约 54.67MB,包内文件结构完整…

2026/10/20 15:29:19 阅读更多 →
YOLOv11轻量化实战:知识蒸馏与更小模型设计

YOLOv11轻量化实战:知识蒸馏与更小模型设计

《YOLOv11 实战:从入门到深度优化20篇》013、模型轻量化技术(三):知识蒸馏与更小模型设计写这块内容之前,先交代一个背景:我在给一个端侧设备项目做目标检测选型时,用 YOLOv11n 跑出来的精度总差…

2026/10/20 15:29:19 阅读更多 →
Context-Mode 上下文模式:多租户与异步场景下的工程实践指南

Context-Mode 上下文模式:多租户与异步场景下的工程实践指南

1. 从“上下文模式”这个命名说起:它到底在解决什么问题第一次看到“context-mode”这个词,很多人会下意识觉得它是个抽象概念,不像某个具体框架或库那样一眼能看懂。我最初也是这个反应——直到自己在几个项目里反复被同一类问题折磨之后&am…

2026/10/20 15:28:17 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →