如何在 Visual Studio Code (Windows10) 中包含用于 MuJoCo 模拟的 GTK 库

问题描述 投票:0回答:1

我想做什么

我正在练习 MuJoCo 模拟,基于 Pranav Bhounsule 的 YouTube 讲座

本讲座中,模拟的代码是用C语言编写的,并提供了运行模拟的makefile(如下)。

    COMMON=/O2 /MT /EHsc /arch:AVX /I../../include /Fe../../bin/
    LIBS = ../../lib/glfw3dll.lib  ../../lib/mujoco.lib 
    CC = cl

    ROOT = project_name

    all:
        $(CC) $(COMMON) main.c $(LIBS) -o ../../bin/$(ROOT)

    main.o:
    $(CC) $(COMMON) -c main.c

    clean:
    rm *.o ../../bin/$(ROOT)

我一直在 Visual Studio 2022 中工作,到目前为止一切正常。

目前,我想使用GTK-3.0库添加GUI组件,并且我使用vcpkg安装了GTK-3.0。

我在 Visual Studio 2022 中练习了一些 GTK 的示例,效果很好。

现在,我正在尝试 在我的 MuJoCo 模拟代码中添加 GTK 库,以便我可以在 Visual Studio Code 中集成我的模拟项目(我听说使用 VSCode 更好,因为它是轻量级的、多功能的,.. .等等与 VS2022 等 IDE 相比)。

我的项目详细目录

基本上,我的 MuJoCo 项目的构建如下。 在以下目录中,

C:/.../mujoco-2.2.1-windows-x86_64

|-- include
|   |-- GLFW            // include GLFW headers e.g. glfw3.h, ...
|   |-- mujoco          // include mujoco headers e.g. mujoco.h, ...
|-- lib                 // include libraries e.g. glfw3dll.lib, mujoco.lib
|-- myProject
|   |-- project_name
|   |   |-- main.c      // this is the main code for MuJoCo simulation
|   |   |-- makefile    // makefile for complie as shown in above.
|   |   |-- run_win.bat // batch file for executing the simulation

此外,我使用 vcpkg 在以下目录中安装了 GTK 库。

C:/.../vcpkg/installed/x64-windows

|-- bin             // include GTK-related .dll files
|-- ...
|-- include         // include GTK-related header files
|   |-- atk-1.0
|   |-- cairo
|   |-- gtk-3.0
|       |-- gdk
|       |-- gtk     // gtk.h, ...
|   |-- ...
|-- lib             // include GTK-related .lib files
|   |-- gdk-pixbuf-2.0
|   |-- glib-2.0
|   |-- ...
|-- ...

问题陈述

正如我上面提到的,我正在尝试在 VSCode 中包含我的 MuJoCo 项目的 GTK 库。 在main.c中,相关头文件包含如下。

    #include <GLFW/glfw3.h>
    #include <mujoco/mujoco.h>
    #include <gtk-3.0/gdk/gtk.h>

但是,当我厌倦运行模拟时(即使不包括 GTK 库),终端中出现错误;

    gcc -c -g main.c ../../lib/glfw3dll.lib ../../lib/mujoco.lib
    main.c:9:10: fatal error: GLFW/glfw3.h: No such file or directory
        9 | #include <GLFW/glfw3.h>
    compilation terminated.

(mujoco.h或gtk.h也出现类似错误。)

我猜它甚至找不到 GLFW 和 mujoco 标头的目录(我不知道为什么)。 我已在 [C/C++ 扩展包:IntelliSense 配置] - [包含路径] 中包含标头路径,如下所示。

    ${workspaceFolder}/**
    C:\...\mujoco-2.2.1-windows-x86_64\include\**
    C:\...\mujoco-2.2.1-windows-x86_64\lib\**
    C:\...\vcpkg\installed\x64-windows\include\**
    C:\...\vcpkg\installed\x64-windows\lib\**

(我没有按字面意思输入“...”。“...”表示我省略的路径的中间。实际上我输入了所有路径。)

我认为我确实正确包含了 GLFW、mujoco 和 GTK 的库和标头的路径。 但终端却说找不到这样的文件或目录。

所以,我想问一下我错过了什么或做错了什么,我应该更改什么才能包含 GTK 库并正确运行模拟。

供您参考

  • 我在VS2022中练习GTK示例时,我在[属性管理器]-[VC++目录、C/C++、链接器]中正确包含了所有.dll文件、头文件和.lib文件。 -> 效果很好。

  • 当我在 VS2022 中运行模拟时,我使用“cl”作为编译器,使用“nmake”来构建代码,并在终端中输入“run_win.bat”以运行模拟。 -> 效果很好。

  • 在 VSCode 中,我安装了 MinGW,以便使用“gcc”作为编译器,并编辑了批处理文件,如下所示,使用“mingw32-make”构建代码。

    mingw32-make
    SET var=%cd%
    cd ../../bin && quad_leg_floating
    cd %var%
  • 在[C/C++配置]中,我选择[编译器路径]为“C:/MinGW/bin/gcc.exe”,[IntelliSense模式]为“windows-gcc-x64”。

正如我之前提到的,

当我在VS2022中练习MuJoCo模拟时,使用指定的makefile(带有cl编译器),我可以通过在命令“nmake”的终端中键入“run_win.bat”来运行模拟。

现在,当我尝试在 VSCode 中运行相同的模拟时,我尝试使用 gcc 作为编译器并编辑批处理文件“mingw32-make”进行构建,但它不起作用。

我尝试在“settings.json”中添加一些设置,如下所示,但它也不起作用。

    "C_Cpp.default.includePath": [
        "C:/.../mujoco-2.2.1-windows-x86_64/include/mujoco",
        "C:/.../mujoco-2.2.1-windows-x86_64/include/GLFW"
     ]
c visual-studio-code gtk mujoco
1个回答
0
投票

如果你正在构建一个GUI,你可以使用mujoco中提供的gui,请参阅文件simulate.c

这是一个您可以修改的准系统模拟文件。 https://pab47.github.io/reports/MuJoCo%20UI%20Projectile%20Game.zip

© www.soinside.com 2019 - 2024. All rights reserved.