Ubuntu20.04编译安装UHD v3.14.0.0时CMake报错求助
解决UHD源码编译时Python版本判断错误的方案
确认UHD版本兼容性
你当前编译的UHD版本可能仍在强制依赖Python2。如果是较旧的UHD版本,建议切换到支持Python3的分支(如v4.0及以上版本),新版本已经修复了Python3的兼容性问题。显式指定Python3给CMake
如果UHD本身支持Python3但CMake未自动检测到,执行cmake时传入Python3相关参数,强制使用Python3.8:cd ~/workarea/uhd/host/build cmake .. \ -DPYTHON_EXECUTABLE=$(which python3) \ -DPYTHON_INCLUDE_DIR=$(python3 -c "import sysconfig; print(sysconfig.get_path('include'))") \ -DPYTHON_LIBRARY=$(python3 -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR') + '/' + sysconfig.get_config_var('LDLIBRARY'))")修改CMake脚本的版本判断逻辑
若无法升级UHD源码,直接修改其CMake版本检查代码:- 找到UHD源码中负责Python版本检查的文件(通常在
cmake/Modules/目录下,比如FindPython.cmake或相关脚本) - 定位到包含以下内容的代码段:
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import platform; assert platform.python_version() >= '2.7' and platform.python_version() < '3.0'" RESULT_VARIABLE PYTHON_VERSION_CHECK_RESULT) - 将断言条件修改为支持Python3的版本范围,比如:
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import platform; assert platform.python_version() >= '2.7'" RESULT_VARIABLE PYTHON_VERSION_CHECK_RESULT) - 保存文件后重新执行cmake命令。
- 找到UHD源码中负责Python版本检查的文件(通常在
重新确认Mako模块安装
虽然报错显示Mako已找到,但为避免Python环境不一致,重新安装Python3版本的Mako:pip3 install --upgrade mako
内容的提问来源于stack exchange,提问作者Cines
相关产品推荐
相关产品推荐

