跳轉到內容

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% 
華夏公益教科書