在 MinGW 上编译 openscenegraph

Compiling openscenegraph on MinGW

我计划将 Open Scene Graph 用于 C++ 开放世界游戏项目。但是,我在最新的 MinGW 上使用 TTF 和 PNG 插件(分别使用 freestyle 和 libpng)编译库时遇到了困难。这方面的文档似乎很少。
为简单起见,我将仅讨论 freetype。刚刚使用 Cmake 和 mingw32-make 编译了它,它位于 Dependencies/freetype 中,编译后的 .a 位于 Dependencies/freetype/build 中,包含一个空头文件(本身需要解释)构建目录的子文件夹。
我想知道将哪些环境变量设置到何处或将编译输出复制到何处,以便将它们包含在 OSG 的构建中。

如果您使用 MSYS2 包存储库中提供的包,则可以避免编译 openscenegraph 和其他依赖项。尽管您可能对 Unix shell 环境不感兴趣,但您仍然可以将 MSYS2 用作通用的包管理系统,其中包含大量可用的包。

对于您的情况,只需拨打以下电话即可:

pacman -Sy mingw-w64-{i686,x86_64}-openscenegraph mingw-w64-{i686,x86_64}-gcc

这将安装 GCC 和 Openscenegraph,所有必需的依赖项都在 <MSYS2_INSTALL_DIR>/mingw{32,64}/

如果您仍然对从源代码编译所有内容感兴趣,请查看构建脚本以构建上述包,conveniently located on github(在您的情况下,寻找 mingw-w64-openscenegraph)。 PKGBUILD 文件包含依赖项和构建步骤。您可以通过下载 PKGBUILD(以及它旁边的其他文件,用于构建过程)和来自 MSYS2 shell 的 运行 makepkg-mingw 来自己构建软件包你把 PKGBUILD 文件。这是迄今为止使用 GCC 为 Windows 构建内容的最简单方法。