You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在MacBook的Ubuntu 22.04上安装ns-allinone-3.37遇错误求助

解决ns-3.37安装时cmake版本解析错误问题

问题场景

在MacBook上的Ubuntu 22.04系统中安装ns-3.37,执行以下命令:

./build.py --enable-examples --enable-tests

触发如下错误:

Entering directory `/media/psf/Home/Desktop/ns-allinone-3.37/./ns-3.37'
 =>  /usr/bin/python3 ns3 configure --enable-examples --enable-tests
Traceback (most recent call last):
  File "/media/psf/Home/Desktop/ns-allinone-3.37/ns-3.37/ns3", line 1546, in <module>
    main()
  File "/media/psf/Home/Desktop/ns-allinone-3.37/ns-3.37/ns3", line 1435, in main
    configuration_step(current_cmake_cache_folder,
  File "/media/psf/Home/Desktop/ns-allinone-3.37/ns-3.37/ns3", line 927, in configuration_step
    cmake, _ = cmake_check_version()
  File "/media/psf/Home/Desktop/ns-allinone-3.37/ns-3.37/ns3", line 777, in cmake_check_version
    if parse_version(version) < parse_version("3.10.0"):
  File "/media/psf/Home/Desktop/ns-allinone-3.37/ns-3.37/ns3", line 765, in parse_version
    version = tuple(map(int, version))
ValueError: invalid literal for int() with base 10: '0-rc4'
Traceback (most recent call last):
  File "/media/psf/Home/Desktop/ns-allinone-3.37/./build.py", line 155, in <module>
    sys.exit(main(sys.argv))
  File "/media/psf/Home/Desktop/ns-allinone-3.37/./build.py", line 146, in main
    build_ns3(config, build_examples, build_tests, args, build_options)
  File "/media/psf/Home/Desktop/ns-allinone-3.37/./build.py", line 65, in build_ns3
    run_command(cmd) # ns3 configure ...
  File "/media/psf/Home/Desktop/ns-allinone-3.37/util.py", line 25, in run_command
    raise CommandError("Command %r exited with code %i" % (argv, retval))
util.CommandError: Command ['/usr/bin/python3', 'ns3', 'configure', '--enable-examples', '--enable-tests'] exited with code 1

已安装所有依赖环境:

sudo apt install build-essential autoconf automake libxmu-dev g++ python3 python3-dev pkg-config sqlite3 cmake python3-setuptools git qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools gir1.2-goocanvas-2.0 python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython3 openmpi-bin openmpi-common openmpi-doc libopenmpi-dev autoconf cvs bzr unrar gsl-bin libgsl-dev libgslcblas0 wireshark tcpdump sqlite sqlite3 libsqlite3-dev  libxml2 libxml2-dev libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake python3-pip libxml2 libxml2-dev libboost-all-dev 

问题原因

错误根源在于ns3脚本中的parse_version函数无法处理带后缀的cmake版本号(例如x.x.x-rc4格式),尝试将包含非数字字符的版本段转换为整数时失败。

解决方案

方案一:修改ns3脚本的版本解析函数

  1. 进入ns-3.37目录并打开ns3脚本:
cd /media/psf/Home/Desktop/ns-allinone-3.37/ns-3.37
nano ns3
  1. 找到parse_version函数,将原代码:
def parse_version(version):
    version = version.split('.')
    version = tuple(map(int, version))
    return version

替换为:

def parse_version(version):
    # 去除版本号中的后缀部分(如-rc4)
    version = version.split('-')[0]
    version = version.split('.')
    version = tuple(map(int, version))
    return version
  1. 保存文件(按Ctrl+O,回车确认,再按Ctrl+X退出),重新执行安装命令:
./build.py --enable-examples --enable-tests

方案二:升级cmake到稳定正式版

如果不想修改脚本,可以将当前的预发布版cmake替换为稳定版:

sudo apt remove --purge cmake
sudo apt update
sudo apt install cmake --install-recommends

安装完成后重新执行build命令即可。

内容的提问来源于stack exchange,提问作者万至秦

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 04:55:15