问题与分析
在通过如下指令配置NS3的python绑定时
./ns3 configure --enable-python-binding
./ns3 build
出现错误,build终止,并出现如下图种的错误信息:
分析问题原因(经高人指导),是缺少libffi库,编译选项里面需要给这些函数的链接 -L路径 -l库名,有一些函数找不到。可以先看看生成的makefile,里面有没有-lffi,如果有的话,再查查动态库的版本。
经检查,NS3的makefile里面没有ffi相关的关键字,但是后半句给问题的解决带来了启发。
解决
*非原创,出处见文末参考文献
- 进入conda虚拟环境下的lib文件夹中,例如我的路径为:
(myconda) root@wJYB2k:~/miniconda3/envs/myconda/lib
- 启动终端,输入命令
ls -l
,如图 libffi.so.7链接至libffi.so.8.1.2,这就是出错的原因地方 - 将 libffi.so.7改名备份,建立正确的链接
mv libffi.so.7 libffi.so.7.bak
sudo ln -s /lib/x86_64-linux-gnu/libffi.so.7.1.0 libffi.so.7
sudo ldconfig // 执行这行命令后出现了一些意外的输出,如下图,不理解但是好在没有影响问题的解决 1
4. 回到ns3文件夹下,重新进行绑定操作
./ns3 configure --enable-python-binding
./ns3 build
- 运行示例程序
./ns3 run first.py //通讯顺利进行,但是在通信进行前出现了一些意外的输出,如下图2
遗留问题
见上文的1、2,如果有解决方案请告知
参考文献
参考:
[1]: ns3配置教程
[2]: [catkin_make]报错:/lib/x86_64-linux-gnu/libp11-kit.so.0: undefined reference to `ffi_**‘
[3]: Conda虚拟环境下libp11-kit.so.0: undefined symbol: ffi_type_pointer…问题解决