Alpine3D 的代码可以按照他们的说明进行编译吗?

Alpine3D 的代码可以按照他们的说明进行编译吗?

我一直在尝试跑步Alpine3d用于个人项目,以模拟风吹雪。该软件使用 3 个主要代码库(每个都是 SLF 的开源项目):MeteoIO、Snowpack 和 Alpine3d。我主要尝试(但失败了)以 3 种方式运行此程序:

  1. 在 Windows 10 上使用普通 .exe 安装程序进行安装
  2. 从源代码编译
  3. 在 Linux 上运行该程序

下面我列出了尝试使用前两种方法的详细信息。我希望知道如何编译代码的人能够测试一下是否能得到相同的结果。

感谢您的任何帮助,您可以提供。


1)在Windows 10上正常安装Alpine3d- 仅下载了Alpine3d Windows 安装程序。该程序已成功安装,可从命令行运行。在命令行中,我尝试通过使用路径变量或转到安装文件夹并调用帮助菜单来验证安装:

alpine3d.exe -help

我收到错误(2):

系统错误 - “由于未找到 libsnowpack.dll,因此无法继续执行代码。重新安装程序可能会解决此问题。”

系统错误 - “由于未找到 alpine3d.dll,因此无法继续执行代码。重新安装程序可能会解决此问题。”

我的直觉是安装程序无法在我的计算机上找到 libsnowpack.dll,因此无法生成下一个 alpine3d.dll。libsnowpack.dll 不是由 Snowpack 软件的安装生成的。修复安装程序似乎非常困难,所以我开始尝试 2。

2)尝试从源代码进行编译-提供说明 指定使用 CMake 和 Visual Studio、MinGW 或 Code::Blocks 来编译代码。

MinGW 出现在 GUI 中,成功配置并生成编译器代码,但是当我在此文件夹上运行 mingw32-make 时,出现错误

“由于未找到 libwinpthread-1.dll,因此无法继续执行代码。重新安装程序可能会解决此问题。”

对于 Code:blocks 编译器,配置失败并询问 libsnowpack.dll.a 的位置。此文件不存在,这让我认为 Snowpack 也需要从源代码编译才能生成 .dll.a

当我尝试编译时Snowpack 源代码使用 Visual Studio (15 2017) 作为编译器时,CMake 不会自动找到 MeteoIO。它正在寻找“Meteoio_Inlcude_Dir”和“Meteoio_Library”。CMake 中的注释说,对于库,它正在寻找类似 .lib 文件的东西。我研究过用 .dll 替换 .lib,但没有成功。似乎需要从成功编译 MeteoIO 源代码中生成 .lib。

当我尝试从源代码编译 MeteoIO(使用 VS)时,CMake 成功生成 .sln 文件,无需任何额外配置。当我尝试使用本地调试器构建 .sln 时,它成功构建了 .lib、.dll 和 .exp 文件。.lib 为 2,840 kb。

当我尝试用这个 .lib 文件编译 (VS) Snowpack 时,它提出了“Meteo_Include_Dir”在哪里的问题。源代码中没有附带“Include”文件夹。如果它应该在构建过程中创建,我找不到它。我确实在由.exe 设置安装对于 MeteoIO。我还尝试复制 MeteoIO 文件夹并将其粘贴到与“doc”和“tools”文件夹同级的新创建的“include”文件夹中。使用随 Windows 安装程序下载的“include”文件夹,(4) 个构建成功运行,并且只成功生成了一个 libsnowpack.lib 文件 (2,984 kb)(在源代码文件夹中),但不是我预期的位置。

我曾尝试使用此 libsnowpack.lib 文件生成我需要的 alpine3d.dll 文件。但是,我无法解决 Snowpack 缺少“include”文件夹的问题,因为 Windows 安装程序不会创建它。原始错误中指定的用于 Alpine3d 的 libsnowpack.dll 不是通过编译 Snowpack 生成的。

我在构建过程中做错了什么吗?编译器是否应该生成不仅仅是 .lib 文件?有没有人使用他们知道有效的编译器获得更好的结果?我不知道我是否已经成功编译了任何代码。

如果你读到这里,再次感谢你,

布赖恩

注意:使用安装程序按顺序安装所有 3 个软件也不起作用。

答案1

Alpine3D 的安装程序实际上已损坏(缺少 Snowpack),已从下载中删除。这意味着您必须从源代码重新编译,直到生成新的软件包。

请严格按照网站上提供的说明进行操作。您不能跳过任何步骤,否则将无法正常工作。我也不建议使用 VC++,因为最近的版本与 Snowpack 存在问题。您也不能混合搭配使用不同编译器编译的库,一旦您开始从源代码编译,就必须从源代码编译所有库(因为二进制包不提供 Windows 所需的开发库。在 osX 或 Linux 上,二进制包可用于编译另一个库/模型)。

相关内容