网站建设肆金手指排名9,自媒体运营小程序开发网站建设,手机wap网站模板使用,无线网址域名注册本文主要来自于ns3的官方文档#xff1a;4.3. Working with CMake — Manual#xff0c;不过只包含以下部分#xff1a;
4.3. 使用CMake 4.3.1. 配置项目 4.3.1.1. 使用ns3配置项目 4.3.1.2. 使用CMake配置项目 4.3.2. 手动刷新CMake缓存 4.3.3. 建设项目 4.3.3.1. 使用ns3…本文主要来自于ns3的官方文档4.3. Working with CMake — Manual不过只包含以下部分
4.3. 使用CMake 4.3.1. 配置项目 4.3.1.1. 使用ns3配置项目 4.3.1.2. 使用CMake配置项目 4.3.2. 手动刷新CMake缓存 4.3.3. 建设项目 4.3.3.1. 使用ns3构建项目 4.3.3.2. 使用CMake构建项目
4.3. 使用CMake ns-3项目过去使用Waf构建系统但在ns-3.36版本中已转移到CMake。 CMake非常冗长对于基本操作来说命令可能非常长。 包装器脚本ns3对CMake隐藏了大部分详细信息并为命令行用户提供了一个类似Waf的界面。 这是建议使用ns-3的方法除非您使用的IDE支持可以使用CMake或CMake项目生成的项目。
4.3.1. 配置项目
在获得代码后无论是克隆ns-3-dev存储库还是下载发布tarball您都需要配置项目来处理它。 有两种方法可以配置项目最简单的方法是使用ns3脚本另一种方法是直接使用CMake。
4.3.1.1. 使用ns3配置项目
导航到ns-3-dev目录然后运行/ns3 configure--打印配置选项的帮助要在发布模式下配置ns-3同时启用示例和测试请运行./ns3 configure -d release --enable-examples --enable-tests。要检查哪些底层命令执行请添加--dry-run选项
~/ns-3-dev$ ./ns3 --dry-run configure -d release --enable-examples --enable-tests
The following commands would be executed:
mkdir cmake-cache
cd cmake-cache; /usr/bin/cmake -DCMAKE_BUILD_TYPErelease -DNS3_NATIVE_OPTIMIZATIONSOFF -DNS3_EXAMPLESON -DNS3_TESTSON -G Unix Makefiles .. ; cd ..
去掉dry run就可以正常configure了。
4.3.1.2. 使用CMake配置项目
进入ns-3-dev目录创建一个CMake缓存文件夹导航到该文件夹然后运行指向ns-3-dev文件夹的CMake。
~$ cd ns-3-dev
~/ns-3-dev$ mkdir cmake-cache
~/ns-3-dev$ cd cmake-cache
~/ns-3-dev/cmake-cache$ cmake ..
可以向CMake命令传递额外的参数来配置它。要更改变量值您应该使用后面跟着变量名的-D选项。 例如构建类型存储在名为CMAKE_build_type的变量中。将其设置为下表中所示的CMake构建类型之一将更改与这些构建类型相关的编译器设置并输出可执行文件和库名称这些名称将接收后缀。 可以使用以下命令设置构建类型该命令假定您的终端位于之前创建的缓存文件夹中。 ~/ns-3-dev/cmake-cache$ cmake -DCMAKE_BUILD_TYPEDEBUG ..
另一个常见的更改选项是生成器它是CMake调用的真正的底层构建系统。CMake支持许多生成器包括下表中列出的生成器。 要更改生成器您需要传递其中一个带有-G选项的生成器。例如如果我们更喜欢Ninja而不是默认的Makefiles我们需要运行以下命令
~/ns-3-dev/cmake-cache$ cmake -G Ninja ..
如果同一CMake缓存文件夹中存在不同的生成器文件则此命令可能会失败。建议清理CMake缓存文件夹然后重新创建它并在第一次运行时重新配置生成器设置。
~/ns-3-dev/cmake-cache$ cd ..
~/ns-3-dev$ rm -R cmake-cache mkdir cmake-cache cd cmake-cache
~/ns-3-dev/cmake-cache$ cmake -DCMAKE_BUILD_TYPErelease -G Ninja ..
第一次配置后设置将初始化为默认值然后您可以使用ccmake命令手动更改它们移动光标并设置所需值后键入c以配置CMake。 如果您喜欢使用非交互式命令执行所有操作请查看ns-3-dev目录中的主CMakeLists.txt文件。它包含大多数选项标志及其默认值。要启用示例和测试请运行
~/ns-3-dev/cmake-cache$ cmake -DNS3_EXAMPLESON -DNS3_TESTSON ..
4.3.2. 手动刷新CMake缓存
配置项目后调用CMake将刷新CMake缓存。需要刷新才能发现新目标自上次运行以来创建的库、可执行文件和/或模块。 刷新是通过从CMake缓存文件夹运行CMake命令来完成的。
~/ns-3-dev/cmake-cache$ cmake ..CMakeCache.txt中存储的先前设置将被保留同时将扫描新模块并添加目标。 还可以使用ns3包装器脚本刷新缓存
~/ns-3-dev$ ./ns3 configure4.3.3. build项目
构建项目有三种方式使用ns3脚本、调用CMake和直接调用底层构建系统例如Ninja。最后一种方法被省略了因为每个底层构建系统都有自己独特的命令行语法。
4.3.3.1. 使用ns3构建项目
ns3包装器脚本使命令行用户的生活更轻松可以接受不带lib前缀的模块名称和不带scratch_前缀的scratch文件。以下命令可用于构建整个项目
~/ns-3-dev$ ./ns3 build
要生成特定目标请运行
~/ns-3-dev$ ./ns3 build target_name其中target_name是有效的目标名称。模块库的前缀是lib例如libcorescratch文件夹中的可执行文件的前缀是scratch_例如scratch_scratch-simulator。可执行文件目标的源文件名不带“.cc”前缀例如sample-simulator.ccsample simulator。