首先,大体教程是按照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
code . --user-data-dir=~/.vscode --no-sandbox
2有关动态库的问题
教程里有提到vscode配置好一切后,要拷贝动态库到/etc/lib里,没错;
**方法一:**将动态库文件拷贝到系统里 具体代码:
cp 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"
}
]
}