在Windows下编译Saba

发布时间 2023-04-03 23:40:41作者: overxus

今天写一篇环境配置的博客,感觉这种博客比较好写?

Saba是一个用于加载MMD(MikuMikuDance)模型、动作文件的C++库。下面我们在Windows下编译这个库。

为了在Windows下编译Saba, 需要提前准备以下工具:

  • cmake
  • Visual Studio 2022(其它版本的Visual Studio也可以)

CMAKE小技巧

使用cmake生成项目时,常见的做法是:

  • 在源代码的根目录下新建一个子目录(这个子目录通常命名为build).
  • 在新建的子目录中使用cmake生成项目.

即下面的过程:

# 当前处于源代码的根目录下, 这个目录下会有一个名为CMakeLists.txt的文件

mkdir build  # 新建子目录build
cd build  # 进入这个子目录
cmake ..  # 使用cmake生成项目(由于我们当前在build目录, 因此CMakeLists.txt在上一级目录,我们使用..告诉cmake, CMakeLists.txt在上一级目录中)

为了编译saba, 需要首先编译bullet和glfw.

编译bullet

首先,获取bullet的源代码,当前(2023/04/03)最新的版本为PyBullet 3.2.5, 可以在这里获取。新建一个目录build用于编译:

mkdir build
cd build

执行以下命令:

cmake -G "Visual Studio 17 2022" `
-D CMAKE_INSTALL_PREFIX='../../bullet' `
-D INSTALL_LIBS=ON `
-D USE_MSVC_RUNTIME_LIBRARY_DLL=ON `
-D BUILD_CPU_DEMOS=OFF `
-D BUILD_OPENGL3_DEMOS=OFF `
-D BUILD_BULLET2_DEMOS=OFF `
-D BUILD_UNIT_TESTS=OFF `
..

这里注意以下几点:

  1. 如果你安装的不是Visual Studio 2022, 这里-G需要换成其它参数,输入cmake -G可以查看都有哪些选项;
  2. 如果你的Windows系统中没有其它开发工具(例如MinGW),-G "Visual Studio 17 2022"可以不写;
  3. CMAKE_INSTALL_PREFIX指定安装库的位置,你可以随意指定;
  4. Windows下的Powershell输入多行时使用`连接,有的终端使用^连接;
  5. 最后的两点..表示上一级目录,千万不要丢了哦.

完成后,依次执行以下命令:

cmake --build . --config Debug --target ALL_BUILD
cmake --build . --config Debug --target INSTALL
cmake --build . --config Release --target ALL_BUILD
cmake --build . --config Release --target INSTALL

大功告成后,之前指定的CMAKE_INSTALL_PREFIX目录下会生成所需的头文件和库文件。

编译GLFW

GLFW可在此处下载,当前(2023/04/03)最新版本为3.3.8.

下载glfw-3.3.8的源代码,在当前文件下新建文件夹build:

mkdir build
cd build

依次执行如下命令:

cmake -D CMAKE_INSTALL_PREFIX="../../glfw" ..  # 这里就没有指定-G选项
cmake --build . --config Debug --target INSTALL
cmake --build . --config Release --target INSTALL

编译Saba

首先,获取Saba的源代码:

git clone https://github.com/benikabocha/saba.git

我们将上面两步得到的bullet和glfw放在saba/external目录中。

cmake -G "Visual Studio 17 2022" `
-D SABA_BULLET_ROOT='./../external/bullet' `
-D SABA_GLFW_ROOT='./../external/glfw' `
..

编译完成之后,在build目录下有一个名为saba.sln的文件,这是Visual Studio的工程文件,打开这个文件。

首先,右键解决方案资源管理器中的saba_viewer:

在打开的菜单栏中,单击“设为启动项目”:

最后,点击绿色的“本地Windows调试器”按钮,就能看到以下窗口:

拖动MMD模型到窗口,你就能看到渲染后的模型啦~

 

好吧,这种文章也不是太好写?