Mujoco2.1.4官方sample在windows下编译测试
MuJoCo是一种物理引擎,旨在促进机器人、生物力学、图形和动画以及其他需要快速准确模拟的领域的研究和开发。
【下载· deepmind/mujoco】
【下载· glfw/glfw】
【改好的在这里:mujoco-2.1.4-windows-x86_64(改)】
官方发布的mujoco2.1.4版本中bin文件夹中缺少compile应用,另外sample文件夹下的Makefile有错误,这里进行了修复可直接使用,具体修改内容及方法可参考:
sample目录操作
1、按照Makefile文件头部描述将glfw相关文件拷贝到mujoco对应的目录中,具体描述如下:
# A copy of the GLFW library is required to build some sample programs.
# If this is not already installed on your system, download the WIN64 archive
# from https://github.com/glfw/glfw/releases, and copy files as follows:
# - Copy the entire `include/GLFW` subdirectory to `mujoco/include/GLFW`.
# - Copy glfw3dll.lib from the subdirectory corresponding into your compiler
# choice to `mujoco/lib/glfw3.lib`.
# - Copy glfw3.dll from the same subdirectory into `mujoco/bin/glfw3.dll`.
这里主要的问题是,在windows下应当使用“glfw3dll.lib”,源代码的Makefile中使用了“glfw3.lib”,链接时会出错!
错误描述:LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
2、修改Makefile文件内容如下
COMMON=/O2 /MT /EHsc /arch:AVX /I../include /Fe../bin/
all:
cl $(COMMON) testxml.cc ../lib/mujoco.lib
cl $(COMMON) testspeed.cc ../lib/mujoco.lib
cl $(COMMON) compile.cc ../lib/mujoco.lib
cl $(COMMON) derivative.cc /openmp ../lib/mujoco.lib
cl $(COMMON) basic.cc ../lib/glfw3dll.lib ../lib/mujoco.lib
cl $(COMMON) record.cc ../lib/glfw3dll.lib ../lib/mujoco.lib
cl $(COMMON) simulate.cc uitools.c ../lib/glfw3dll.lib ../lib/mujoco.lib
del *.obj
编译生成
默认编译生成的sample会覆盖bin目录下的文件,请谨慎操作
编译工具使用:
mingw(使用mingw32-make)或微软MSVC(使用nmake),本文使用MSVC
MSVC使用注意事项
1、需要安装MSVC Tools、windows10 SDK;
2、环境变量配置:
- cl.exe
在用户或系统环境变量的PATH中添加cl.exe的启动路径:
添加cl.exe环境变量C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64\
- 变量:INCLUDE
值:
MSVC的INCLUDEC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt;
- 变量:LIB
值:
MSVC的LIBC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\um\x64;