跳转到内容

Celestia/开发/Win32 平台

来自维基教科书,开放世界中的开放书籍

使用 Windows-32 软件包的 Celestia 开发选项

Subversion (svn)

[编辑 | 编辑源代码]

Celestia 的源代码在 SourceForge 上托管的 Subversion (SVN) 存储库中可用。

Windows 上有几个 Subversion 客户端可用。一个非常流行的客户端是 TortoiseSVN,这是一个 Windows 外壳扩展,允许您直接在 Windows 资源管理器中使用 SVN 命令。命令行版本可通过 Cygwin 获得。

要使用命令行客户端获取最新的 Celestia 源代码,请 cd 到所需的目录,然后发出命令

svn co https://celestia.svn.sourceforge.net/svnroot/celestia/trunk

对于 Tortoise SVN,从 Windows 资源管理器弹出菜单中选择“检出”,然后输入以下 URL

https://celestia.svn.sourceforge.net/svnroot/celestia/trunk

适用于 Windows XP 和 Windows 7 的 Microsoft C++ & SDK 工具

[编辑 | 编辑源代码]

为了构建 Windows 软件,您需要一个 SDK(软件开发工具包)和一个编译器。SDK 提供构建特定版本的 Windows 所需的库和包含文件。编译器将文本文件转换为二进制程序,并将它们链接到 SDK 库。Microsoft 提供了其 SDK 和编译器的免费版本,尽管功能有限,但为了鼓励开发用于其操作系统的软件。他们还出售商业软件开发组织使用的增强版。

目前,Subversion 存储库中没有检查 Visual Studio 2010 解决方案。如果您有 VS2010,除了针对以前版本的 Visual Studio 列出的步骤外,您还需要执行几个不受支持的步骤。

  • 首先,VS2010 会将以前版本的项目文件转换为 VS2010 格式。这些转换后的版本将具有不匹配的 $(TargetFile) 和链接器输出文件定义。这些将必须手动协调。一种选择是将“常规”项目属性“目标名称”设置为“$(ProjectName)”,并将链接器属性“输出文件”设置为“$(OutDir)$(TargetName)$(TargetExt)”。这将允许您构建,但它将无法运行。
  • 其次,也是最重要的是,存储库中的静态库 zlib 和 libpng 编译为仅与 VS2008 的可再发行运行时 dll(即 msvcm90.dll、msvcp90.dll 和 msvcr90.dll)一起使用。这些运行时与 VS2010 不兼容,因此您必须获得与 2010 兼容的 zlib 和 libpng(以及调试版本)。最简单的方法可能是从 sourceforge 获取源代码,自己构建它们,将新的库放到 windows\lib\x86 中,并更改链接器的“附加依赖项”属性中的条目。
  • 最后,您必须确保 celestia.exe 和 windows\dll 中的 dll 被复制到 $(ProjectDir) 中,并且调试“命令”属性设置为“$(ProjectDir)\$(TargetFileName)”,并且“工作目录”属性设置为 $(ProjectDir)。

您可能需要执行其他步骤,具体取决于您获得的 zlib 和 libpng 的版本。

2007 年 12 月,Microsoft 发布了 Visual C++ 2008 Express Edition。从 Celestia 1.6.0 版本开始,这是构建 Celestia 的唯一推荐的编译器版本。请注意,Visual C++ 2008 无法在 Windows 98 上运行。*仅为此原因*,您可能需要使用 Visual Studio 2005。如果您使用的是 Windows 2000、XP、Vista 或 7,则使用 Visual C++ 2008 进行编译要容易得多。

  • 如果您还没有 Microsoft Visual C++ 2008,您可以从这里免费下载:
http://msdn.microsoft.com/en-us/express/future/bb421473

使用 Web 安装程序安装 VS C++ 2008 SP1 时,它也会自动下载并安装所有正确的 SDK 库。这在 Windows XP、32 位和 Windows 7、64 位下都会发生。SDK 无需单独下载或安装。

  • 如果您还需要 Windows SDK,它可以从 Microsoft 免费下载:
http://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=en

Visual C++ 2008 Express Edition 的分步指南

[编辑 | 编辑源代码]

这些说明适用于 Windows XP 和 Windows 7。

此过程假定您已按照上述步骤操作,从 SVN 中检出源代码,并安装了 Visual C++ 编译器和 Windows SDK。

  1. 将 iconv.dll、intl.dll 和 lua5.1.dll 从 trunk\celestia\windows\dll\x86 复制到 trunk\celestia
    • Celestia 是一个 32 位 x86 应用程序。没有 x64 库。
  2. 在 Microsoft Visual C++.Net 2008 中打开 celestia.sln 并允许更新程序工作。
    • 换句话说,在 trunk\celestia 目录中选择(双击)celestia.sln
  3. 将构建类型设置为“Release”。(从 svn 提供的项目将其设置为“Debug”)
    • 具体来说,在 VisualStudio 窗口顶部的图标行中,最初显示“Debug”的位置,打开其下拉菜单并选择“Release”
  4. 构建!
    • 打开“构建”菜单并选择“重新生成解决方案”

仅推荐给 Windows 98/ME 用户,Visual C++ 2008 在这些系统上不受支持。如果您运行的是 XP、Vista 或 7,您应该使用上一节中描述的简单得多的过程。

  • Windows 平台 SDK:Web 安装
http://www.microsoft.com/downloads/details.aspx?familyid=0BAF2B35-C656-4969-ACE8-E4C0C0716ADB&displaylang=en
  • Windows 平台 SDK:磁盘映像
http://www.microsoft.com/downloads/details.aspx?FamilyID=e15438ac-60be-41bd-aa14-7f1e0f19ca0d&DisplayLang=en
  • Visual Studio 2005 Express C++:Web 安装
http://www.microsoft.com/express/2005/download/default.aspx
  • Visual Studio 2005 Express C++:磁盘映像
http://msdn2.microsoft.com/en-us/express/aa718401.aspx

适用于 VS2005 的 Celestia 库

[编辑 | 编辑源代码]

Celestia 存储库中的库是使用 VS2008 构建的,在 Windows 98/ME 上将无法使用

适用于 Visual Studio 2005 Express 的 Celestia 库

http://www.shatters.net/~claurel/celestia/winbuild/
  • 截至 2007 年 10 月,请使用
    • cspice.lib
    • winbuild-2.zip
    • winlibs-2.zip
自创建 winbuild-2.zip 以来,已向 Celestia 的 svn 存储库添加了几个源代码文件。如果您使用 makerelease.bat 从当前 Subversion 存储库构建,请将以下行插入 celestia/src/celengine/engine.mak 的 OBJS 部分
       $(INTDIR)\axisarrow.obj \
       $(INTDIR)\customrotation.obj \
       $(INTDIR)\frametree.obj \
       $(INTDIR)\precession.obj \
       $(INTDIR)\scriptrotation.obj \ 
       $(INTDIR)\timeline.obj \
       $(INTDIR)\timelinephase.obj \
SPICE 包含文件包含在 winlibs-2.zip 中。
这些 Zip 文件不包含任何二进制 DLL(动态链接库),因此您需要从预编译的 Celestia 安装套件中获取它们。截至 2008 年 1 月 26 日,请使用 Celestia v1.5.0 中包含的 DLL。Celestia v1.5.0 的官方版本可在 SourceForge 上获得。


Windows Celestia 发行套件中包含的 Celestia 版本使用 makerelease.bat 脚本编译。较旧的 VS2003 版本的构建脚本仍然位于 SourceForge 上的 cvs 存档中。针对 VS2005/VS2008 更新的 makefile 和 .bat 脚本包含在 winbuild-2.zip [备注:winbuild-2.zip 中没有 makerelease.bat] 中,该文件位于上面显示的 VS2005 winbuild 目录中。

不要忘记,您必须根据您的特定开发环境配置 PATH、LIB 和 INCLUDE 环境变量,以便构建脚本可以找到 Visual Studio 和 Celestia 程序、包含文件和库。

以下是一个用于定义搜索列表的 .BAT 脚本示例。它可能不适用于您:您可能将文件放在不同的目录中。请根据您的情况进行更改。

Set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\include;%INCLUDE%
Set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\include\mfc;%INCLUDE%
Set INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\include;%INCLUDE%
Set INCLUDE=C:\cvs\Celestia\celestia\inc;%INCLUDE%

Set PATH=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin;%PATH%
Set PATH=C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;%PATH%
Set PATH=C:\Program Files\Microsoft Visual Studio 8\VC\bin;%PATH%

Set LIB=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib;%LIB%
Set LIB=C:\Program Files\Microsoft Visual Studio 8\VC\lib;%LIB%
Set LIB=C:\cvs\Celestia\celestia\lib;%LIB% 
华夏公益教科书