C SWIG导致perl包中出现“符号查找问题”

C SWIG导致perl包中出现“符号查找问题”,c,perl,swig,undefined-symbol,C,Perl,Swig,Undefined Symbol,我正在尝试安装一个旧的perl模块,名为BioMol,其中SWIG用于将C与perl进行接口。它当前安装在“旧”计算机上,我们希望将其安装在较新的计算机上 我能够构建这个包并将其安装在更新的机器上——生成一个库:BioMol.so 当我尝试运行使用perl模块中的简单函数的示例脚本时,遇到以下错误: perl:symbol查找错误:/binary/BioMol的路径。so:undefined symbol:new\u fragmentlist 通过查看二进制文件(使用nm),我发现: 253

我正在尝试安装一个旧的perl模块,名为BioMol,其中SWIG用于将C与perl进行接口。它当前安装在“旧”计算机上,我们希望将其安装在较新的计算机上

我能够构建这个包并将其安装在更新的机器上——生成一个库:BioMol.so

当我尝试运行使用perl模块中的简单函数的示例脚本时,遇到以下错误:

perl:symbol查找错误:/binary/BioMol的路径。so:undefined symbol:new\u fragmentlist

通过查看二进制文件(使用nm),我发现:

 253                  U new_dihedrallist
 254 0000000000019f60 T new_DihedralList
 255                  U new_fragment
 256 0000000000017ca0 T new_Fragment
 257                  U new_fragmentlist
 258 0000000000019000 T new_FragmentList
因此,new#u fragmentlist是未定义的(L#257),但new#u fragmentlist(L#258)似乎是我无论如何都应该使用的。“旧”计算机上的二进制文件如下所示:

896 0000000000018d00 T new_Dihedral
897 0000000000018c20 T new_DihedralList
898 00000000000170b0 T new_Fragment
899 0000000000016fd0 T new_FragmentList

我认为这可能是由于SWIG中的一些重命名指令(参见中的5.4.7.2)。也许我在新的二进制文件中遇到案例问题的原因可能是因为新SWIG中有一些新的默认选项(新版本是3.0.12,“旧机器”版本是1.3.40)。非常感谢您的帮助

能否提供指向
BioMol
模块的链接?(我在metapan.org上找不到)Rename绝对不应该这样做。看起来更像是链接器错误,但我不太明白是怎么回事。@HåkonHægland-BioMol模块不久前是在内部构建的,因此无法在线使用。