2014-01-29 78 views
2

我已經完成了我使用SDL和eclipse IDE在C++中開發的「學習計時器」項目,但我是Eclipse新手,我想知道如何讓Eclipse從我的工具中生成新的包項目,我可以直接提供給最終用戶(類似於發佈Flash項目後創建.swf文件),該項目不包含僅用於編譯所需的各種文件和文件夾!發佈項目 - 當我在Eclipse中完成C++項目時該怎麼做?

具體做法是:

我有很多的文件和文件夾在我的項目所必需的發展,但不執行!

例如,我的項目包含:的src /,頭/,圖片/,字體/,調試/(包含實際的exe文件),編譯和運行所需的其他dll文件...

但是爲了執行,我只需要Debug /,images /和Fonts/

有沒有一種方法可以讓Eclipse自動生成一個可以提供給最終用戶的乾淨的完成項目?

是有可能產生新的可執行文件,是不依賴於圖像和字體文件夾,而是讓他們嵌入到生產(包含所有相關的媒體類似於一個.swf)更大的.exe文件?

+3

我懷疑你真的想從'Release'發佈而不是'Debug'。 –

+0

是的,現在你提到它了,我想要Release的可執行文件。但是如何生成這樣的可執行文件? – reubenjohn

+0

我認爲你可以在手工開發一個腳本(用python,bash等)來選擇你需要的所有資源,然後把你的開發目錄結構中的東西拷貝到'客戶包'中。也許你可以做到只是適合解決方案,而不用關心你是否使用Eclipse來開發它。 –

回答

3

因爲,爲了將其部署到最終用戶一個C++項目,你只需要可執行文件(一個或多個)應用程序以及任何系統特定的依賴(你可以用Dependency Walker檢查它們並找到再分發或包安裝程序他們以及您的應用程序)。注意C++可執行文件不能跨平臺移植,所以如果你爲Windows編譯一個exe文件,它將不能在Linux或Mac上運行。

那麼你可能需要一個安裝程序來部署一切,並安裝它(如果需要在所有安裝)到另一個用戶的系統:

一個免費和易於使用的一個:http://www.jrsoftware.org/isinfo.php

一個專業和開源不那麼容易使用的一個:http://nsis.sourceforge.net/Main_Page

商業專業之一:http://www.installshield.com/


不確定:如果您要求「我應該從Eclipse C++項目給用戶什麼?」那麼你應該給他們一個版本你的應用程序的版本。發行意味着「經過優化且無需調試幫助」,它幾乎肯定會比Debug-folder可執行文件更快更小。然後按照上面所述將其打包。

在Eclipse可以切換到「釋放」從

(假設一個標準的C/C++的Eclipse IDE)
Build Configurations->Set Active->Release 

如已經陳述的,一個發佈版本不包含調試代碼(無用用於最終用戶和,如果你有代碼,你希望用戶不知道關於的任何東西),它是優化(即使在彙編模式下調試代碼更容易閱讀,並且更易於分析bug追蹤),因此可執行文件的大小通常較小。

enter image description here


問題更新後:爲您的可執行文件使用嵌入的資源你需要一個資源文件,包括與鏈接(即參考的東西它的二進制可執行文件,而不是依靠outsie內的文件)到你的可執行文件這也取決於編譯器(Eclipse是一個IDE,它可以幫助你編寫代碼,但它並不是真正創建你的exe文件的程序)。這些東西位於Eclipse的隱藏之下,並與Eclipse「溝通」產生什麼)。

+0

正如我前面提到的,我是Eclipse開發新手,這是我已經達到的第一個項目,它處於發佈階段。我沒有意識到發佈和Debug .exe應用程序之間的區別!您能否詳細說明關鍵區別以及如何製作發佈版本?以及它如何可以更快? – reubenjohn

+0

添加了一些行,以及如何在Eclipse中生成這樣的版本 –