免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

OpenUSD 高级构建配置完全指南:从 build_usd.py 到 CMake 参数详解

OpenUSD 高级构建配置完全指南:从 build_usd.py 到 CMake 参数详解 OpenUSD 高级构建配置完全指南从 build_usd.py 到 CMake 参数详解【免费下载链接】OpenUSDUniversal Scene Description项目地址: https://gitcode.com/GitHub_Trending/ope/OpenUSD本文是 OpenUSDUniversal Scene Description仓库中 BUILDING.md 的深度解读与实践指南围绕如何按需构建 OpenUSD这一核心主题展开既覆盖最简便的build_usd.py一键构建方式也系统讲解直接调用 CMake 时的全部关键选项包括可选组件开关、Imaging 插件、第三方插件、四种链接模式、测试运行与常见构建问题。读完本文你将能够根据自身平台Linux / macOS / Windows / WebAssembly与功能需求Python 绑定、Hydra 渲染、文档生成、插件集成等定制出可复现的构建配置。构建路径总览两种方式如何选择OpenUSD 提供两条构建路径build_usd.py脚本位于 build_scripts/build_usd.py是最简单的构建方式。它会自动下载所需的第三方依赖TBB、OpenSubdiv 等与 USD 一起构建并安装到指定目录。适合大多数希望快速获得完整可用环境、又不愿手工管理依赖的用户。直接使用 CMake用户通过-D参数指定 USD 要链接的第三方库路径及各类构建选项。适合需要对构建产物进行精细控制如嵌入自有工程、交叉编译、定制链接模式的场景。README 的 Getting and Building the Code 一节说明了脚本构建的默认行为默认构建 USD 核心库、Imaging 与 USD Imaging 组件。关于脚本的更多选项运行python build_scripts/build_usd.py --help即可查看。需要特别注意的是构建脚本设计为源码树外构建out-of-source build将构建产物直接安装进仓库克隆目录是未经测试的用法见 README.md。使用 build_usd.py 一键构建基本用法是为脚本传入一个安装目录作为位置参数脚本会完成依赖下载、依赖构建、USD 构建与安装的全流程python OpenUSD/build_scripts/build_usd.py /path/to/my_usd_install_dir从源码看脚本的核心参数build_scripts/build_usd.py包括参数默认值说明install_dir位置参数必填USD 安装目录-n, --dry_run关闭仅汇总将要执行的操作不实际构建-j, --jobsCPU 核数并行构建任务数--buildinstall_dir/buildUSD 与第三方依赖的构建目录--build-variantrelease取值debug/release/relwithdebuginfo--build-target平台默认交叉编译目标如iOS、visionOS、wasm、wasm64--srcinstall_dir/src依赖源码下载目录--instinstall_dir依赖安装目录--generator/--toolsetCMake 默认指定 CMake 生成器与工具集--build-args空向指定库透传自定义构建参数如--build-args USD,-DPXR_STRICT_BUILD_MODEON ...--cmake-build-args空向所有使用 CMake 的构建统一透传参数单个字符串--force/--force-all空强制重新下载并构建指定库 / 全部库--compiler-cache/--no-compiler-cachemacOS/Linux 开、Windows 关是否使用 ccache 加速增量编译--materialx/--no-materialx开启是否构建 MaterialX 支持脚本默认启用与纯 CMake 默认关闭不同平台差异要点macOS先执行xcode-select确保命令行开发者工具可用Apple Silicon 上默认启用代码签名可用--codesign-id指定签名 ID且提供--ignore-homebrew让 CMake 忽略 Homebrew 包build_scripts/build_usd.py。iOS / visionOS在 macOS 上通过--build-target iOS/--build-target visionOS交叉编译此类构建不支持 Python 绑定与命令行工具建议配合--build-monolithic单体构建以便嵌入应用。还可用--build-apple-framework产出 Apple Framework实验特性默认要求单体构建。Windows需在 Visual Studio 的 x64 Native Tools Command Prompt或 ARM64 版本中运行脚本。Linux可传--use-cxx11-abi 0|1选择 libstdc 的 C11 ABI。直接使用 CMake 构建当需要精细控制时可跳过脚本直接调用 CMake。文档给出的三个平台示例均以 TBB 与 OpenSubdiv 两个典型外部依赖为例Linuxcmake \ -DTBB_ROOT_DIR/path/to/tbb \ -DOPENSUBDIV_ROOT_DIR/path/to/opensubdiv \ /path/to/USD/source cmake --build . --target install -- -j NUM_CORESmacOS生成 Xcode 工程cmake \ -G Xcode \ -DTBB_ROOT_DIR/path/to/tbb \ -DOPENSUBDIV_ROOT_DIR/path/to/opensubdiv \ /path/to/USD/source cmake --build . --target install -- -j NUM_CORESWindows生成 Visual Studio 工程C:\Program Files\CMake\bin\cmake.exe ^ -G Visual Studio 15 2017 Win64 ^ -DTBB_ROOT_DIRC:\path\to\tbb ^ -DOPENSUBDIV_ROOT_DIRC:\path\to\opensubdiv ^ \path\to\USD\source cmake --build . --target install -- /m:%NUMBER_OF_PROCESSORS%对于更新的 Visual Studio 版本使用如下生成器参数VS2019-G Visual Studio 16 2019 -A x64VS2022-G Visual Studio 17 2022 -A x64WebAssembly 构建Wasm 构建需要先安装 Emscripten 工具链并先为 32/64 位 wasm 构建 oneTBB 并安装。随后执行emcmake cmake \ -DCMAKE_INSTALL_PREFIX/path/to/build/openusd_wasm \ -DCMAKE_PREFIX_PATH/path/to/build/openusd_wasm \ -DPXR_BUILD_TESTSON \ -DPXR_BUILD_EXAMPLESOFF \ -DPXR_BUILD_IMAGINGOFF \ -DCMAKE_FIND_ROOT_PATH/path/to/build/tbb_wasm \ -DBUILD_SHARED_LIBSOFF \ -DCMAKE_CXX_FLAGS-pthread --use-portzlib \ -DCMAKE_C_FLAGS-pthread --use-portzlib \ -DCMAKE_EXE_LINKER_FLAGS-pthread \ /path/to/src/OpenUSD emmake cmake --build . --config Release --target install -j 8要点默认构建32 位Wasm如需 64 位需在CMAKE_C_FLAGS中追加-sMEMORY641并事先构建 Wasm64 版本的 oneTBB。从源码看针对 Wasm 目标构建系统会自动强制关闭不支持的组件PXR_BUILD_EXECOFF、BUILD_SHARED_LIBSOFF共享库在 wasm 下不受支持见 cmake/defaults/Options.cmake。Wasm 构建会把plugInfo.json等资源文件在链接阶段嵌入产物二进制挂载到虚拟文件系统的/usd目录下供 usd 库加载类型与 schema 使用。可选组件按需裁剪或扩展构建USD 含多个默认启用但可关闭的可选组件。关闭组件即可免去对应依赖。以下组件开关的默认值均可从 cmake/defaults/Options.cmake 中核实。Python 支持PXR_ENABLE_PYTHON_SUPPORT默认ON依赖 Python 的组件包括USD 工具集Toolset、第三方插件、USD C API 的 Python 语言绑定、基于 Python 的单元测试。支持的 Python 版本见 VERSIONS.md。关闭方式-DPXR_ENABLE_PYTHON_SUPPORTFALSE默认情况下Python 绑定安装到CMAKE_INSTALL_PREFIX下的标准 site-packages 目录Linux / macOSprefix/lib/pythonX.Y/site-packagesWindowsprefix/Lib/site-packages如需自定义安装目录设置PXR_PYTHON_INSTALL_DIR可为相对CMAKE_INSTALL_PREFIX的路径或绝对路径例如恢复旧版布局-DPXR_PYTHON_INSTALL_DIRlib/python使用绑定时需将安装目录加入PYTHONPATH但如果把CMAKE_INSTALL_PREFIX指向 virtualenv 根目录默认设置下无需额外配置。OpenGLPXR_ENABLE_GL_SUPPORT默认ON-DPXR_ENABLE_GL_SUPPORTFALSE关闭后将跳过依赖 GL 的组件与库包括 usdview 与 Hydra GL imaging。MetalPXR_ENABLE_METAL_SUPPORTApple 平台默认ON构建需 macOS Mojave10.14及以上-DPXR_ENABLE_METAL_SUPPORTFALSE关闭后将跳过依赖 Metal 的组件与库主要是 Hydra imaging。从源码看非 Apple 平台上该选项会被强制置回OFFcmake/defaults/Options.cmake。VulkanPXR_ENABLE_VULKAN_SUPPORT默认OFF实验性启用需安装 Vulkan SDK 与 glslang并将VULKAN_SDK环境变量指向 SDK 位置Windows 上构建 debug 版时还需安装 Vulkan SDK 的 Shader Toolchain Debug Symbols 可选组件。启用-DPXR_ENABLE_VULKAN_SUPPORTTRUEMaterialXPXR_ENABLE_MATERIALX_SUPPORTCMake 默认OFF-DPXR_ENABLE_MATERIALX_SUPPORTTRUE注意需要带共享库支持的 MaterialX。使用build_usd.py时默认启用可用--materialx/--no-materialx覆盖。CMake 方式需额外提供依赖依赖名说明MaterialX_DIRMaterialX SDK 安装的 CMake 包配置路径OSLPXR_ENABLE_OSL_SUPPORT默认OFF-DPXR_ENABLE_OSL_SUPPORTTRUE启用后Shader Definition Registrysdr可以解析 OSL 着色器中的元数据。文档生成PXR_BUILD_DOCUMENTATION默认OFF-DPXR_BUILD_DOCUMENTATIONTRUE需提供DOXYGEN_EXECUTABLEDoxygen 位置。文档分为两个子组件HTML 文档PXR_BUILD_HTML_DOCUMENTATION默认TRUE包含 USD 概述、通用概念与 C API 文档。需额外提供DOT_EXECUTABLEGraphViz 的 dot。仅在PXR_BUILD_DOCUMENTATIONTRUE时生效。Python 文档PXR_BUILD_PYTHON_DOCUMENTATION默认FALSE为 Python 实体生成 docstring。前提是 Python 支持与文档生成均启用。该过程使用 docs/python 目录下的脚本从生成的 Doxygen XML 中提取文档并与构建出的 Python 模块中的类、函数、属性匹配生成__DOC.py文件安装到各 Python 模块目录模块加载时注入 docstring。ImagingPXR_BUILD_IMAGING默认ONImaging 组件包含 Hydra 高性能图形渲染引擎。关闭-DPXR_BUILD_IMAGINGFALSE从 cmake/defaults/Options.cmake 可见关闭 Imaging 会连带强制关闭 USD Imaging 组件与所有 Imaging 插件。USD ImagingPXR_BUILD_USD_IMAGING默认ON提供 Hydra 的 USD imaging delegates 以及独立 USD 查看器 usdview。usdview 也可单独关闭PXR_BUILD_USDVIEWFALSE。此外源码显示usdview 还依赖 USD Imaging、Python 支持与 GPU 支持GL/Metal/Vulkan 至少其一任一不满足都会被强制关闭cmake/defaults/Options.cmake。命令行工具PXR_BUILD_USD_TOOLS默认ON默认构建若干用于验证与操作 USD 文件的命令行工具如 usdcat、usdchecker 等。关闭-DPXR_BUILD_USD_TOOLSFALSE示例与教程PXR_BUILD_EXAMPLES默认ON构建若干演示如何开发扩展与插件的示例工程关闭用-DPXR_BUILD_EXAMPLESFALSE。PXR_BUILD_TUTORIALS默认ON构建 USD 教程所需的 USD 与 Python 文件关闭用-DPXR_BUILD_TUTORIALSFALSE。Imaging 插件扩展 Hydra 渲染能力以下插件默认关闭按需开启插件CMake 开关额外依赖说明PtexPXR_ENABLE_PTEX_SUPPORTTRUE—Ptex 纹理支持OpenImageIOPXR_BUILD_OPENIMAGEIO_PLUGINTRUE—默认支持 bmp/jpg/png/tga/hdr启用后扩展至 exr/tif/zfile/tx支持子图像与 mipmap 等高级特性OpenColorIOPXR_BUILD_OPENCOLORIO_PLUGINTRUE—为 Hydra 视口提供色彩管理Embree 渲染后端PXR_BUILD_EMBREE_PLUGINTRUEEMBREE_LOCATIONembree 安装根路径基于 embree 光线追踪库的示例渲染后端RenderMan 渲染后端PXR_BUILD_PRMAN_PLUGINTRUERENDERMAN_LOCATIONRenderMan 安装根路径使用 Pixar RenderMan 作为 Hydra/usdview 渲染后端源码中这些选项与依赖约束均已定义在 cmake/defaults/Options.cmake如 Embree 插件要求 Imaging 与 GPU 支持同时开启否则被强制关闭。第三方插件与外部软件的集成Alembic 与 Draco 插件默认不构建需显式开启。Maya、Katana 的 USD 插件由 Autodesk、Foundry 各自维护的独立仓库提供不在本仓库内。Alembic 插件PXR_BUILD_ALEMBIC_PLUGINTRUE需额外提供依赖名说明ALEMBIC_DIRAlembic 库位置OPENEXR_LOCATIONOpenEXR 位置Imath_DIR不使用 OpenEXR 时Imath SDK 的 CMake 包配置路径OpenEXR 3 可显式用 Imath 代替 OpenEXROpenEXR 与 Imath 二选一取决于ALEMBIC_DIR指定的 Alembic 库所用后端。若需 HDF5 后端支持 Alembic 文件另加-DPXR_ENABLE_HDF5_SUPPORTTRUE并提供HDF5_LOCATIONHDF5 位置。Draco 插件PXR_BUILD_DRACO_PLUGINTRUE需提供DRACO_ROOTDraco SDK 安装根路径。兼容 Draco 1.3.4注意 VERSIONS.md 中当前测试版本为 1.5.6。有一个重要的平台限制Windows 上 Draco 插件无法与单体monolithic构建同时启用否则会因符号缺失直接报错cmake/defaults/Options.cmake。测试构建、运行与失败诊断测试默认构建可通过-DPXR_BUILD_TESTSFALSE关闭。运行测试在构建目录即最初调用 cmake 的目录中执行 ctest。运行全部测试Release 配置、详细输出ctest -C Release -V按名称正则过滤测试例如只运行匹配testUsdShade的测试ctest -C Release -R testUsdShade -V测试运行目录每个测试都在自动创建的临时目录中运行。可用PXR_TEST_RUN_TEMP_DIR_PREFIX为这些目录名添加前缀例如设为foo-后测试目录名为foo-test dir。失败测试的诊断产物失败测试的生成文件会被显式保留便于排查其中ctest_run_timestamp格式为%Y-%m-%dT%H.%M.%S${CMAKE_BINARY_DIR}/Testing/Failed-Diffs/ctest_run_timestamp/${TEST_NAME}/${filename}.result.${ext} ${CMAKE_BINARY_DIR}/Testing/Failed-Diffs/ctest_run_timestamp/${TEST_NAME}/${filename}.baseline.${ext}即结果文件.result与基线文件.baseline成对存放可直接对比差异。其他构建选项自定义任务管理系统PXR_WORK_IMPLUSD 基于任务并行task-based parallelism提升可扩展性与性能基础位于pxr/base/work库默认用 Intel TBB 或 oneAPI oneTBB 实现。如需替换为自定义实现将PXR_WORK_IMPL设为提供自定义实现的 CMake 包名该包必须能被find_package(${PXR_WORK_IMPL} CONFIG)定位到包须提供名为${PXR_WORK_IMPL}::${PXR_WORK_IMPL}的库目标含接口定义include 目录、共享库等库必须实现所需函数与类并提供一个名为impl.h的头文件可通过#include ${PXR_WORK_IMPL}/impl.h包含。例如名为workExample的实现需提供workExampleConfig.cmake定义workExample::workExample目标并保证impl.h能通过#include workExample/impl.h找到。该选项在 cmake/defaults/Options.cmake 中定义默认为空。插件元数据位置每个核心库通常带有一个plugInfo.json文件记录该库提供的 schema 类型等元数据由 USD 内部插件系统用于按需懒加载库。构建系统会依据安装位置自动配置这些文件的位置若要在构建后搬迁它们需通过PXR_INSTALL_LOCATION告知最终位置可为:分隔的路径列表。另一种定位插件的方式是PXR_PLUGINPATH_NAME环境变量同样可为路径列表。若不想使用这个默认环境变量名可覆盖名称-DPXR_OVERRIDE_PLUGINPATH_NAMECUSTOM_USD_PLUGINPATHS之后 USD 将检查CUSTOM_USD_PLUGINPATHS而非默认的PXR_PLUGINPATH_NAME。路径值具备以下匹配特性PXR_PLUGINPATH_NAME与PXR_INSTALL_LOCATION通用可包含任意数量的路径以/结尾的路径会自动追加plugInfo.json*可匹配除斜杠外的任意字符**可匹配包括斜杠在内的任意字符遵循 Unix$PATH式约定重复定义时采用先找到者。共享库前缀PXR_LIB_PREFIX默认共享库前缀为lib例如 pxr/usd/usdGeom 组件对应生成libusdGeom对象Linux 为libusdGeom.soWindows 为libusdGeom.dllmacOS 为libusdGeom.dylib。可通过PXR_LIB_PREFIX修改或移除前缀-DPXR_LIB_PREFIXpxr将生成pxrusdGeom.soLinux、pxrusdGeom.dllWindows、pxrusdGeom.dylibmacOS。注意此前缀不适用于Python 绑定使用的共享对象。Address Sanitizer 构建Address Sanitizer 的内存泄漏检测会触发大量本属于 Leak Sanitizer 的断言。如需不带泄漏检测的 ASan 构建用-fsanitizeaddress编译并设置export ASAN_OPTIONSdetect_leaks0也可在代码中定义默认函数参见 ASAN runtime flags 文档const char *__asan_default_options() { return detect_leaks0; }USD 开发者选项C 命名空间配置通过以下标志启用与定制 C 命名空间选项名说明默认值PXR_SET_EXTERNAL_NAMESPACE外部命名空间标识符pxrPXR_SET_INTERNAL_NAMESPACE内部命名空间标识符pxrInternal_v_x_y对应版本 x.y.zPXR_ENABLE_NAMESPACES是否启用命名空间ON启用后生成的头文件 pxr/pxr.h.in 提供一组便于使用命名空间的宏宏名说明PXR_NAMESPACE_OPEN_SCOPE打开命名空间作用域PXR_NAMESPACE_CLOSE_SCOPE关闭命名空间PXR_NS显式限定如PXR_NS::TfToken foo ...PXR_NAMESPACE_USING_DIRECTIVE执行 using-directive如using namespace PXR_NS;USD Schema 生成USD 通过称为 schema generation 的过程生成部分代码需要以下 Python 模块安装并可在 syspath 中找到Python 模块名说明Jinja2usdGenSchema 的核心代码生成器Argparse基本命令行参数解析优化选项Malloc 库经验表明 USD 在使用 Jemalloc 等分配器时性能最佳。可通过PXR_MALLOC_LIBRARY指定自定义分配器值为分配器共享对象路径-DPXR_MALLOC_LIBRARY:path/usr/local/lib/libjemalloc.so未指定时使用默认分配器。链接器选项四种链接模式USD 的链接方式由三个选项控制选项名默认值说明BUILD_SHARED_LIBSON构建共享库或静态库PXR_BUILD_MONOLITHICOFF构建单个库或多个库PXR_MONOLITHIC_IMPORT空定义 usd_m 导入库的 CMake 文件模式一共享库默认生成若干共享库可按需只加载任务所需库cmake -DBUILD_SHARED_LIBSON ...配置BUILD_SHARED_LIBSON、PXR_BUILD_MONOLITHICOFF。模式二静态库生成若干静态库可只嵌入任务所需库但不支持 USD 插件与 Python 模块因为会导致符号多重定义同一符号在主应用与每个插件/模块中各有一份实例cmake -DBUILD_SHARED_LIBSOFF ...配置BUILD_SHARED_LIBSOFF、PXR_BUILD_MONOLITHICOFF。模式三内部单体库将pxr/下所有核心库构建进单一库usd_m静态或共享取决于BUILD_SHARED_LIBS。pxr/外的插件与 Python 模块照常构建但链接usd_m而非默认模式的各个独立库pxr/内的插件被编译进usd_m其plugInfo.json也指向usd_m。此模式可减少安装文件数量并简化链接# 单体共享库 cmake -DPXR_BUILD_MONOLITHICON -DBUILD_SHARED_LIBSON ... # 单体静态库 cmake -DPXR_BUILD_MONOLITHICON -DBUILD_SHARED_LIBSOFF ...命名说明出于历史一致性共享单体库的输出文件名为usd_ms静态单体库为usd_m但两种情况下 CMake 目标都叫usd_m。警告链接静态单体库必须使用WHOLE_ARCHIVE选项见下文因此产物可执行文件与共享库会非常大——它们实际上引入了 USD 的每一个目标文件。模式四外部单体库与内部单体类似但由客户端负责构建单体共享库适合将 USD 嵌入另一个共享库。构建步骤选定导入文件路径。该文件以add_library(usd_m SHARED IMPORTED)及若干set_property调用组成文件不必事先存在若存在应为空或合法 CMake 代码。以PXR_BUILD_MONOLITHICON与PXR_MONOLITHIC_IMPORT第 1 步路径常规配置构建。正常构建但目标改为monolithic。创建你的共享库若用 CMake可包含 USD 构建目录下的pxr/usd-targets-CONFIG文件CONFIG为第 3 步的构建配置然后链接usd_m。注意不能简单target_link_libraries(mylib PUBLIC usd_m)必须取得usd_m的全部内容见 Linking Whole Archives。编辑导入文件描述你的库构建过程可能通过export()直接生成。文件大致如下add_library(usd_m SHARED IMPORTED) set_property(TARGET usd_m PROPERTY IMPORTED_LOCATION ...) # Windows 上需要以下设置 #set_property(TARGET usd_m PROPERTY IMPORTED_IMPLIB ...) set_property(TARGET usd_m PROPERTY INTERFACE_COMPILE_DEFINITIONS ...) set_property(TARGET usd_m PROPERTY INTERFACE_INCLUDE_DIRECTORIES ...) set_property(TARGET usd_m PROPERTY INTERFACE_LINK_LIBRARIES ...)完成 USD 构建默认目标或install目标。两点补充你的库不必命名为 usd_m这只是导入文件给它的名称IMPORTED_LOCATION才是真实名称与路径。USD 目前只支持你的库与 USD 其他安装文件位于同一相对位置的安装即通过相对路径../share/usd/plugins与../plugin/usd定位plugInfo.json。Linking Whole Archives整库链接链接静态库时链接器通常只拉取提供所需符号的目标文件。但 USD 有大量含静态全局对象带副作用构造函数的文件若没有任何可见符号被使用普通链接会将其排除副作用不执行USD 将无法工作。因此必须让链接器包含整个归档。具体链接标志因平台而异但 CMake 3.24 支持平台无关的生成器表达式target_link_libraries(mylib $LINK_LIBRARY:WHOLE_ARCHIVE,usd_m)避免静态链接 Python默认启用 Python 支持的构建会链接解释器的 Python 静态库以支持从 C 运行 Python 代码。若不需要可关闭-DPXR_PY_UNDEFINED_DYNAMIC_LOOKUPON主要动机是生成 PyPI wheel 包利用 Python 的 ABI 兼容性该参数设计得较为通用以备他用。注意此标志在 Windows 上无效。Spline 选项默认抗回归创作模式样条关键帧动画由pxr/base/ts库实现。Bezier 数学允许长切线形成时间上回溯的形状非函数通常需要在创作时阻止。各策略详见 pxr/base/ts/doxygen/regression.md。硬编码默认模式为TsAntiRegressionKeepRatio保持比例。修改默认值的方式build_usd.py--build-args USD,-DPXR_TS_DEFAULT_ANTI_REGRESSION_AUTHORING_MODETsAntiRegression...cmake-DPXR_TS_DEFAULT_ANTI_REGRESSION_AUTHORING_MODETsAntiRegression...客户端代码也可按需覆盖默认值。从源码看该宏在 pxr/base/ts/CMakeLists.txt 中以编译期定义注入ts库且在求值路径中如 pxr/base/ts/eval.cpp实际使用TsAntiRegressionKeepRatio作为求值时的默认行为。客户端还可通过TsAntiRegressionAuthoringSelectorpxr/base/ts/raii.h临时切换当前创作模式。构建问题 FAQWindows Python 3.8非 AnacondaWindows 上 Python 3.8 及更高版本不再搜索 PATH 查找 DLL 依赖客户端需调用os.add_dll_directory(p)设置搜索路径。该平台上 USD 默认遍历 PATH 并在导入 Python 模块时用os.add_dll_directory()添加所有路径。可通过环境变量PXR_USD_WINDOWS_DLL_PATHPATH 风格字符串覆盖设置后 USD 将改用这些路径。注意以上不适用于 Anaconda 的 Python 3.8 解释器——它们被修改为类似 3.8 之前的行为继续使用 PATH 查找 DLL。在 Anaconda 环境下用户应按 Python 3.8 之前的习惯配置系统。常见构建故障排查思路编译失败优先核对第三方依赖版本是否在 VERSIONS.md 的测试范围内如 Linux 测试环境为 gcc 11.5.0 CMake 3.30.4Windows 为 Visual Studio 2022 17.14 CMake 3.27.9。组件间存在强制依赖关系关闭 Imaging 会连带关闭 USD Imaging 与全部 Imaging 插件关闭 Python 支持会连带关闭 usdviewusdview 还要求 GPU 支持开启。若配置结果与预期不符构建日志中的STATUS信息如Setting PXR_BUILD_USDVIEWOFF because ...会明确说明被强制关闭的原因。Wasm 目标下 Exec 组件与共享库自动禁用Windows 上 Draco 插件与单体构建互斥。结语OpenUSD 的构建体系高度模块化build_usd.py适合快速获得完整环境CMake 直调则赋予最大控制力。本文覆盖了从平台级构建命令、可选组件开关、渲染与第三方插件到四种链接模式、测试诊断与 FAQ 的完整知识链。实际使用时建议先运行python build_scripts/build_usd.py --help或对照 cmake/defaults/Options.cmake 中的默认值再结合 VERSIONS.md 的依赖版本矩阵即可定制出可靠、可复现的构建配置。【免费下载链接】OpenUSDUniversal Scene Description项目地址: https://gitcode.com/GitHub_Trending/ope/OpenUSD创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表