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

  Saba是一个用于加载MMD(MikuMikuDance)模型、动作文件的C++库。下面我们在Windows下编译这个库。为了在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的源代码,当前(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=您的Bullet库路径 `
-D SABA_GLFW_ROOT=您的GLFW库路径 `
..

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

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

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

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

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

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

在Windows下编译Saba的更多相关文章

  1. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  2. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  3. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  4. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  5. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  6. windows下编译java源文件的编码错误

    import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...

  7. Windows下编译SDL

    Windows下编译SDL的理由我就不多说了,无论用VS来编译或调试SDL库都是很方便的.而且SDL源代码中也包含了VC工程,你所要做的只是解压VC工程,进行适当的配置,然后编译.调试. 编译SDL大 ...

  8. Windows下编译安装 FFmpeg

    在Linux/Mac下编译 ffmpeg是非常方便的.但要在 Windows下编译 ffmpeg还真要花点时间.以下就是在 Windowns下编译ffmpeg的步骤: 一.安装Cygwin 在wind ...

  9. windows下编译php7图形库php_ui.dll

    CSDN博客 具有图形化编程才有意思,这几天看到了php ui 图形扩展,只是现在只能下载php 7.1的 本次教程编译php7.2.6的 php ui 要是linux下编译起来比较简单 但是 win ...

  10. 一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg

    一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...

随机推荐

  1. SpringCloud学习 系列十、服务熔断与降级(1-简介)

    系列导航 SpringCloud学习 系列一. 前言-为什么要学习微服务 SpringCloud学习 系列二. 简介 SpringCloud学习 系列三. 创建一个没有使用springCloud的服务 ...

  2. vue学习笔记 六、ref定义单个数据

    系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...

  3. vue学习笔记 一、环境搭建

    系列导航 vue学习笔记 一.环境搭建 vue学习笔记 二.环境搭建+项目创建 vue学习笔记 三.文件和目录结构 vue学习笔记 四.定义组件(组件基本结构) vue学习笔记 五.创建子组件实例 v ...

  4. lighthouse性能优化分析工具使用

  5. 玩转 Helm 之 upgrade

    0. 前言 在 玩转 Helm 一文中,简略提到了 Helm upgrade 的策略. 在实际项目开发上,upgrade 多是调研的重点.基于此,这里对 upgrade 继续展开. 1. basic ...

  6. 每天学五分钟 Liunx 0100 | 服务篇:进程状态

    多任务和 CPU 时间片 前面说了 Liunx 是多用户多任务的,所谓的多任务就是多个进程"同时"执行.比如,同时开多个软件(进程),对于用户来说好像每个软件(进程)都在工作,但是 ...

  7. [粘贴]关于preparedStatement

    作者:wuxinliulei链接:https://www.zhihu.com/question/37043270/answer/83914933来源:知乎著作权归作者所有.商业转载请联系作者获得授权, ...

  8. [转帖]br 备份时排除某个库

    https://tidb.net/book/tidb-monthly/2023/2023-02/usercase/excluded-a-storeroom-during-br-backup 生产环境中 ...

  9. [转帖]ioping测试

    https://www.cnblogs.com/ishmaelwanglin/p/10839702.html 一个实时显示磁盘io延时的工具,以类似ping 的输出一样展示输出结果 常用参数: -c ...

  10. [转帖]重置 VCSA 6.7 root密码和SSO密码

    问题描述 1.用root用户登录 VMware vCenter Server Appliance虚拟机失败,无法登录 2.vCenter Server Appliance 6.7 U1的root帐户错 ...