Open-Dis的C++版本编译(CMake-gpu 3.21.4)以及SDL2和SDL_net库的配置使用

简介: Open-Dis的C++版本编译(CMake-gpu 3.21.4)以及SDL2和SDL_net库的配置使用

Open-Dis

Open-Dis简介

Dis是国防部,北约和联合国实时/虚拟世界建模和仿真中使用最广泛的协议之一。 Open-DIS是Java、javascript、python、 C ++和C#中标准的免费开源实现。 该项目使用BSD风格的开源许可证,该许可证是非病毒式和商业友好的。


分布式交互仿真

DIS是由仿真互操作性标准组织(SISO)开发并由IEEE批准的IEEE标准(IEEE-1278.1)。 它被广泛用于实时虚拟世界的军事模拟。


DIS是一个网络协议。 它描述了几十个协议数据单元(PDU)的确切布局,其中包含有关世界中实体的位置和方向的信息等等。 这些是描述电子战,物流,碰撞和模拟管理的PDU。


更多资料

更多资料请见官网或者github。

官网链接 | github链接

Open-Dis下载

由于我平时使用的语言为C++/python。这里我以C++为例。下载地址:github点击直达 | CSDN免积分下载

下载解压好之后,应该是这样的:


CMake编译教程

我们打开刚刚下载好多文件中的README.md文件。查看官方推荐的编译方法。提供的环境较多。我这里以C++ + Visual Studio 为例。下面我贴出了该环境的编译过程。


Windows with Visual Studio


1.Open CMake (cmake-gui) via the the start menu.

2.Enter the open-dis-cpp directory path into the Source and Build fields.

3.Click the + Add Entry button and enter the following details:

Name: SDL_INC_DIR

Type: PATH

Value: <SDL2-install-folder>/include

(if you follow the below SDL2 Windows Install Instruction this will be C:/SDL2/include)

4.Click the + Add Entry button and enter the following details:

Name: SDL_LIB_DIR

Type: PATH

Value: <SDL2-install-folder>/lib/x64 (64 bit) or <SDL2-install-folder>/lib/x86 (32 bit)

(if you follow the below SDL2 Windows Install Instruction this will be C:/SDL2/lib/x64)

5.Click Configure and follow the prompts, selecting the correct generator (i.e. Visual Studio version).

6.Click Generate

7.Click Open Project - This should open the generates solution file in Visual Studio

8.Build the Solution (Ctrl + Shift + B)

These steps were tested with Visual Studio 16 2019 (Community Edition).

Currently, only OpenDIS 6 and the Example Applications compile.

The library and executable files are output to a Debug directory.


To run the executables, either the value of the SDL_LIB_DIR variable should be added to your path,

or SDL2.dll and SDL2_net.dll need to be copied to the Debug directory.


可以看到,在说明中需要有SDL2.dll和SDL2_net.dll库。


SDL2和SDL_net

SDL介绍

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。当前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。


下载SDL

下载地址: 官网直达 | CSDN免积分

下载解压好打开应该是这样的:

配置SDL2

将SDL2的文件夹直接放在D盘根目录。你可以放在任意位置,这就是一个库而已。

注意 路径不能有中文。


下载SDL_net

下载地址: CSDN免积分下载

下载好应该是这样的:

配置SDL_net工程

这里我们需要选择环境,选择VisualC即可。

然后点击SDL_net.sln项目启动文件

打开工程。

打开SDL2_net的项目配置

配置C/C++的附加库目录 。这里需要填写SDL库VS版本的头文件路径配置C/C++的【附加库目录】 。这里需要填写SDL库VS版本的头文件路径。

配置链接器 的【附加库目录】 这里需要设置到SDL2库VS版本的lib\x64的路径

然后点击生成即可

这样就表示生成成功了。就可以去这个路径找到生成的动态库。

然后将SDL_net.h头文件和生成的SDL2_net.dll动态库 SDL2_net.lib静态库分别放在SDL的路径下

SDL_net.h ->  D:\SDL2-2.26.0\include
SDL2_net.dll -> D:\SDL2-2.26.0\lib\x64
DL2_net.lib -> D:\SDL2-2.26.0\lib\x64


到此,编译Dis所需要的前置条件都完成了。

编译Open-Dis

第一步打开CMake 设置source code pathbuild path

2、 添加俩个属性

点击【 +Add Entry】 按钮 添加一个配置

Name: SDL_INC_DIR
Type: PATH
Value: D:/SDL2-2.26.0/include

同样的方法再添加一个。

Name: SDL_LIB_DIR
Type: PATH
Value: D:\SDL2-2.26.0\lib\x64


3、先点击Configure 然后点击Generate 最后点击Open Project。

4、在项目中右击生成解决方案。无报错就结束。

编译结束


大功告成

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
1月前
|
C#
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
|
2月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
76 6
|
1月前
|
人工智能 自然语言处理 API
适用于 .NET 稳定的官方OpenAI库
适用于 .NET 稳定的官方OpenAI库
|
2月前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
184 64
|
26天前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
28 4
|
2月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
31 1
|
1月前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
2月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
74 5
|
2月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
68 1
|
2月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库