OpenSUSE Leap 15.5编译Madagascar时rpc库链接错误求助
解决OpenSUSE Leap 15.5编译Madagascar时rpc函数未定义的链接错误
以下是几种无需修改全局Python配置的解决方案,按推荐优先级排序:
1. 修改项目根目录SConstruct全局添加libtirpc
Madagascar使用SCons构建系统,所有子目录的构建环境均继承自根目录的env对象,只需在根目录的SConstruct文件中统一添加libtirpc依赖即可:
- 打开项目根目录下的
SConstruct文件 - 找到环境变量配置中添加系统库的代码块(通常是
env.Prepend(LIBS=[...])或env.Append(LIBS=[...])) - 在LIBS列表中加入
tirpc(SCons会自动处理lib前缀),示例:# 原配置可能类似 env.Prepend(LIBS=['m', 'dl']) # 修改后 env.Prepend(LIBS=['m', 'dl', 'tirpc']) - 更鲁棒的方式是先检测系统是否存在libtirpc再添加,避免无库时构建失败:
if env.CheckLib('tirpc'): env.Prepend(LIBS=['tirpc'])
2. 编译时通过命令行参数临时添加libtirpc
如果不想修改任何源码配置文件,可直接在scons编译命令中指定额外链接库:
scons LIBS+=tirpc
该参数仅对当前Madagascar的构建过程生效,不会修改任何配置文件,也不会影响其他程序。
前置检查:确保已安装libtirpc开发包
如果还未安装编译依赖,先执行:
sudo zypper install libtirpc-devel
以上两种方案均不会修改全局Python配置,仅针对Madagascar的构建流程添加必要的libtirpc链接,解决所有子目录的xdr_*函数未定义问题。
内容的提问来源于stack exchange,提问作者UserX
相关产品推荐
相关产品推荐

