换了研究方向,需要用NS3。装软件、搭环境永远都是最烦人的事情。历经多次试验,反复下载,终于有了眉目。记录一下这个和NS3、Qt、Anaconda斗智斗勇的过程。
1.macOS Catalina
忘了是macOS 10.几。2019年买的MacBook Pro,没升级过系统。我是一个恋旧的人,hhhh~但是这个系统下,去App Store下载Xcode已经不兼容了。迫不得已,升级系统到:macOS Monterey 12.2.1 接下来便是漫长且心酸的过程。
2.macOS Monterey 12.2.1
(1)在这个系统下装NS3,首先下载Xcode,12.6G,很是过分。
(2)下载Qt安装包,并安装。(此处略过,我没安装成功这个东西)
看了很多教程,也下载了Qt的各个版本,也出了各种错误。emmm...就很WC。
原本我拥有一个Anaconda,也不知道conda里是不是包含了Qt,我不懂。总之,教程里说装NS3之前要先装Qt,于是下载Qt安装包并安装,不知道点了什么,清空了以前的qt版本,或许就是conda中的qt,原因不明,conda不能用了。反正现在也不用conda,先把NS3的环境搞好吧。
按照教程,下载Qt安装包,各种版本都试了。此处是按照这位博主的方法操作的,我也下载了5.15.0版本。MAC上配置ns3 - 简书环境为MAC OS10.12首先安装了xcode然后从http://www.nsnam.org上下载源码然后解压 进入解压得到的目录并编译 编译完成后进入ns-3.26文件夹...https://www.jianshu.com/p/b118eac8e511打开终端,切换到你下载的目录,比如我下载到了Downloads
cd Downloads
xz -d qt-everywhere-src-5.15.0.tar.xz
安装过程解压,执行完成之后你会获得一个qt-everywhere-src-5.15.0.tar文件,接下来解压这个文件
tar -xvf qt-everywhere-src-5.15.0.tar
完成后你会获得一个qt-everywhere-src-5.15.0文件夹,这个就是源文件了,接下来可以删除原来的那个文件,.tar.xz那个文件已经被解压为.tar文件了。
rm -rf qt-everywhere-src-5.15.0.tar
改个名字,进入安装
mv qt-everywhere-src-5.15.0 qt5.15.0
cd qt5.15.0
sudo ./configure -prefix /usr/local/qt5.14.0/ -debug-and-release -opensource
Password:输入密码即可
这个地方是让你选择商业版本还是开源版本,输入o选择开源版本就好。
这个地方告诉你你获许的开源协议和是否查看开源协议还有是否接受协议,L查看LGPLv3,G查看GPLv2,y同意,n拒绝,我们当然是同意,输入y
执行完成后接下来就是编译了
sudo make -j4
Password:输入密码
接下来是一个漫长的过程,大概20-30分钟,总之很慢,完成之后就到了最终的安装阶段
sudo make install
遗憾的是,我做到sudo make -j4编译就歇菜了。执行编译命令后报错:Can't Build QT on Monterey: qiosurfacegraphicsbuffer.h :54: 32: error: unknown typr name 'CGColorSpaceRef'; did you mean 'QColorSpace'?(下图是借鉴别人的,一样的错误)
经过一番斗争,找到了解决办法:src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h,先找到这个文件,46、47行加两行代码:
再次sudo make -j4,成功。
继续sudo make install,失败。已崩溃,放弃。
此时qmake命令不能用。命令行qmake -v ,找不到的。先整NS3吧。
(3)下载ns-allinone-3.35.tar.bz2
解压后得到文件夹:ns-allinone-3.35,终端进入此文件夹后执行build.py,默认不会编译examples和tests,所以手动加上examples、tests:
./build.py --enable-examples --enable-tests
编译完后,进入ns-allinone-3.35下的ns-3.35执行./waf -h查看:
./waf -h
再进入ns-3.35文件夹,执行test.py测试:
再继续执行./waf --run hello-simulator:
0 errors ,Hello Simulator 我又可以了!我太棒了!但此时打不开NetAnim那个图形界面。说是编译ns3的时候会自动编译netanim,可能是我Qt没弄好,反正它没编译成功。进入ns-allinone-3.27文件下的netanim-3.108文件夹,执行:
qmake -spec macx-g++ NetAnim.pro
失败!qmake命令找不到。再次崩溃。
算了,先安装好被我搞坏的conda吧。重新装好conda,配好路径,qmake命令竟然能用了,生活处处是惊喜。得出结论:conda里面可能包含了qt。结论对不对不知道,总之qmake能用了,回到上一步,再试一下——成功!
终端进入netanim-3.108文件夹,执行./NetAnim:
./NetAnim
终于出现以下图形交互界面:
老母亲激动到原地转圈!Over!
3.总结
装NS3之前,先命令行输入:which qmake 或者 qmake -v 看一下qmake是否可用。
可用,直接下载ns-allinone-3.35.tar.bz2,安装就行。(有Anaconda大概率可用吧)
不可用,需要先安装Qt。
4.感谢
我很笨,经过4天的相爱相杀,终于搞好了这个东西。非常感谢在此过程中各位博主和大佬的分享陪伴,爱你们,hhh ~ 祝你们的代码永远没有bug!!!
Mac安装Qt5.13.1后使用qmake显示command not found: qmake_Marco_L的博客-优快云博客
[Qt] Mac平台安装最新版qt的方法(源码编译)- 刘傲天 - 简书
mac下卸载Qt5_LC900730的博客-优快云博客_mac qt卸载