NS3 0 vscode配置与调试
首先,大体教程是按照b站这个:(已经保存到e盘了)
https://www.bilibili.com/video/av671680199
https://www.bilibili.com/read/cv9932411
然后就是想说几个坑
1首先,安装ns3的时候不建议使用root安装,
如果使用了root安装,那么vs code要以root模式运行才能正常编译运行ns3
坑1来了:教程里vs code root运行的方法是:
sudo su code . --user-data-dir=~/.vscode |
这样会无法启动最新vscode
应该是这样才对:
sudo su
|
2有关动态库的问题
教程里有提到vscode配置好一切后,要拷贝动态库到/etc/lib里,没错;
方法一:将动态库文件拷贝到系统里 具体代码:
sudo cp /home/ylx/ns3/ns-allinone-3.33/ns-3.33/build/lib/* /lib/ |
sudo cp /home/ylx/ns-allinone-3.35/ns-3.35/build/lib/* /lib/ |
但是如果你修改了ns3的源码,然后重新编译,会生成新的动态库,这个时候就需要重新把动态库拷贝进去
方法二:将ns3的动态库路径加入到系统中
Ubuntu将lib库加入到系统
1查找lib库
(例如libvlc.so的动态库)
find / -name libvlc.so |
2添加lib库
找到后在/etc/ld.so.conf这个文件,
查看此文件包含的目录
include /etc/ld.so.conf.d/*.conf |
在/etc/ld.so.conf.d/目录下建一个conf文件,写入添加的路径
写入添加的路径!!!
3更新lib库
添加完成后,执行下面的命令更新lib库
sudo ldconfig |
方法二注意的是:./waf clean后重新./waf编译后;要重新执行sudo ldconfig 更新lib库
3要注意3个配置文件的内容:
这里备份一下:
/home/ylx/ns3/ns-allinone-3.33/ns-3.33/.vscode/c_cpp_properties.json
{ "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/build/**" ], "defines": [], "compilerPath": "/usr/bin/gcc", "cStandard": "gnu17", "cppStandard": "gnu++14", "intelliSenseMode": "linux-gcc-x64", "compileCommands": "${workspaceFolder}/build/compile_commands.json" } ], "version": 4 } |
/home/ylx/ns3/ns-allinone-3.33/ns-3.33/.vscode/launch.json
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "waf - 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "/home/ylx/ns3/ns-allinone-3.33/ns-3.33/build/scratch/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: ./waf cpp 生成活动文件", "miDebuggerPath": "/usr/bin/gdb" } ] } |
/home/ylx/ns3/ns-allinone-3.33/ns-3.33/.vscode/tasks.json
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: ./waf cpp 生成活动文件", "command": "./waf", "args": [], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: /usr/bin/cpp" } ] } |