在Windows下编译Saba
Saba是一个用于加载MMD(MikuMikuDance)模型、动作文件的C++库。为了在Windows下编译Saba, 需要提前安装cmake和Visual Studio 2022(或其它版本的Visual Studio)。
cmake使用小技巧
使用cmake生成项目时,常见的做法是:
1. 在源代码的根目录下新建一个子目录(这个子目录通常命名为build).
2. 在新建的子目录中使用cmake生成项目.
即以下过程:
# 当前处于源代码的根目录下, 这个目录下会有一个名为CMakeLists.txt的文件
mkdir build # 新建子目录build
cd build # 进入这个子目录
cmake .. # 使用cmake生成项目(由于我们当前在build目录, 因此CMakeLists.txt在上一级目录,我们使用..告诉cmake, CMakeLists.txt在上一级目录中)
为了编译saba, 需要先编译bullet和glfw.
编译bullet
首先,获取bullet的源代码,当前(2024/04/01)最新的版本为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 `
..
这里注意以下几点:
-
- 如果你安装的不是Visual Studio 2022, 这里
-G需要换成其它参数,输入cmake -G可以查看都有哪些选项; - 如果你的Windows系统中没有其它开发工具(例如MinGW),
-G "Visual Studio 17 2022"可以不写; CMAKE_INSTALL_PREFIX指定安装库的位置,你可以随意指定;- Windows下的Powershell输入多行时使用
`连接,有的终端使用^连接; - 最后的两点
..表示上一级目录,千万不要丢了哦.
- 如果你安装的不是Visual Studio 2022, 这里
完成后,依次执行以下命令:
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目录下会生成所需的头文件和库文件。
温馨提示(更新于2024/04/01)
编译bullet库时,Debug和Release版本都需要编译,否则之后将bullet集成到saba时,在使用cmake生成saba项目工程文件时,会发生错误。
编译GLFW
GLFW可在此处下载,当前(2024/04/01)最新版本为3.4.
下载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=您的Bullet库路径 `
-D SABA_GLFW_ROOT=您的GLFW库路径 `
..
编译完成之后,在build目录下有一个名为saba.sln的文件,这是Visual Studio的工程文件,打开这个文件。
首先,右键解决方案资源管理器中的saba_viewer:

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

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

拖动MMD模型到窗口,就能看到渲染后的模型了。

Saba是一个用于加载MMD(MikuMikuDance)模型、动作文件的C++库。本文介绍如何在Windows下编译这个库。
浙公网安备 33010602011771号