当前位置: 首页 > 工具软件 > NS3 > 使用案例 >

ns3 vscode配置与调试

穆旭尧
2023-12-01

首先,大体教程是按照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"
  }
 ]
}
 类似资料: