这是一个非常简单的问题,但我很难在网上找到答案。
DeepMind just made MuJoCo free,所以我决定在我的Windows电脑上使用download it进行测试。然而,当我安装的时候,我得到的只是一个文件夹。
我创建了一个不同的文件夹(不在下载的文件夹中),并将the tutorial中的hello.xml和hello.c文件复制粘贴到这个新文件夹中。但是,VSCode在hello.c内部给#include "mujoco.h"加了红色下划线,并带有警告cannot open source file "mujoco.h"。
我假设我需要在我的路径中添加一些东西,或者以某种方式使我的编译器能够找到头文件。我该怎么做呢?
总的来说,我希望能够运行hello.c。
(我看过许多不同的链接,如果需要的话,我可以在这里链接来证明我已经在其他地方研究过了,但大多数在线资源似乎要么是1.假设事情会正常工作/你有C和库导入的经验2.是针对Mac/Linux或3.是针对mujoco-python)
发布于 2021-10-30 00:26:46
TL;DR
-> -> Additional ->->附加到MuJoCo链接器的bin目录中
创建项目
打开Visual Studio文件->新建->项目-> Visual C++ ->空项目

编写代码
stackoverflowMuJoCo ->源文件-> Add New Item -> C++ File (我称之为"main.cpp“,但这无关紧要)
将hello.c中的代码复制到main.cpp中
#include "mujoco.h"
#include "stdio.h"
char error[1000];
mjModel* m;
mjData* d;
int main(void)
{
// activate MuJoCo
mj_activate("mjkey.txt");
// load model from file and check for errors
m = mj_loadXML("../model/hello.xml", NULL, error, 1000);
if( !m )
{
printf("%s\n", error);
return 1;
}
// make data corresponding to model
d = mj_makeData(m);
// run simulation for 10 seconds
while( d->time<10 )
mj_step(m, d);
// free model and data, deactivate
mj_deleteData(d);
mj_deleteModel(m);
mj_deactivate();
return 0;
}*请注意,我在deepmind接管它之前就下载了它,所以我仍然需要使用mj_activate调用,但您可以忽略它。另外,我将路径更改为hello.xml,因为稍后我将把可执行文件复制到MuJoCo安装的bin目录中(见下文)。
添加头文件
项目目录包括Properties

*这确保您不必对每个配置重复整个过程。
VSCode在hello.c内部加上红色的#include "mujoco.h“下划线。
现在这个应该不存在了。
添加库
项目属性Properties
安装目录中的-> Input -> Additional .lib文件的名称


编译现在应该成功,但执行可能会失败

执行和调试
在此阶段,执行可能会失败,并显示以下错误消息。

要解决此问题,只需将输出的可执行文件stackoverflowMuJoCo\x64\Release\stackOverflowMuJoCo.exe复制到MuJoCo安装的bin目录中即可。
这将确保它可以找到所需的dll。
如果您希望能够进行调试:手动将所有dll文件复制到"stackoverflowMuJoCo\x64\Debug“目录中。
警告
hello world示例中的代码是被动模拟,这意味着您在屏幕上看不到任何东西。
如果您想看到一些东西,请用以下代码替换:https://github.com/atabakd/MuJoCo-Tutorials/blob/master/src/0_preliminaries/pd.cpp并将invertedPendulum.xml添加到models目录中。
一些笔记
可能有一个更好/更简单的工作流程,但现在我只是试着让它工作。此外,我使用的MuJoCo版本与您的不同,但它的工作方式应该基本相同(除了激活的东西)。
https://stackoverflow.com/questions/69622353
复制相似问题