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

bash 复制代码
git clone https://github.com/NVIDIA-Omniverse/usd-brep.git

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

执行预安装脚本

bash 复制代码
$ ./rebuild.sh
bash 复制代码
$ ./repo.sh build
bash 复制代码
# 执行完成后,最后提示完成Build
BUILD (RELEASE) SUCCEEDED (Took 1.42 seconds)

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

安装uv命令

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

bash 复制代码
# 安装方案1(推荐)
curl -LsSf https://astral.sh/uv/install.sh | sh

或

bash 复制代码
#安装方案2
# 确保已安装 pipx (如果尚未安装)
sudo apt install pipx
pipx ensurepath

# 使用 pipx 安装 uv
pipx install uv

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

执行启动gui时,报错

bash 复制代码
uv run --locked --group gui python tools/scripts/smlib_gui.py

报错如下错误:

bash 复制代码
smlib_gui: config=debug pid=2748084
smlib_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 --release
smlib_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 deps for that interpreter: /home/myPc/work/code-demo/usd-brep/_build/target-deps/python/bin/python3 -m pip install numpy pyvista

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

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

bash 复制代码
$ uv run --locked --group gui python tools/scripts/smlib_gui.py --release

报错如下错误:

bash 复制代码
smlib_gui: config=release pid=2680540
smlib_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 not echo Dump(); AssertValid still runs (no file/line labels).
qt.qpa.plugin: From 6.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依赖:

bash 复制代码
sudo apt install -y libxcb-cursor0

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

bash 复制代码
$ uv run --locked --group gui python tools/scripts/smlib_gui.py --release

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

成功!

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

相关推荐
殷忆枫2 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
衍玊4 小时前
多路转接原理与应用
c++
himobrinehacken5 小时前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全
xatu6 小时前
ubuntu容器在redhat系统下使用大模型API问题
linux·运维·ubuntu
Android小码家8 小时前
Vehicle 实战 自定义属性+测试demo
java·c++·framework·vhal·vehicle
hetao17338378 小时前
2026-10-19 hetao1733837 的刷题记录
c++·算法
夏虫不可与之言冰8 小时前
第三课 点亮 LED 与定时器非阻塞闪烁
c语言·c++·vscode·单片机·嵌入式硬件·物联网
辛苦才能8 小时前
C++ 哈希表深度解析:删除为什么必须打标记,负载因子为什么卡 0.7
开发语言·数据结构·c++·算法
miller-tsunami8 小时前
STL简介&string相关知识点
开发语言·c++·string