2011-07-25 105 views
5

我有我需要在編譯之前將自動生成一些文件的Eclipse項目。我不想將這個自動生成的文件放入我的存儲庫,所以每次編譯projet時,我都會執行預生成以自動生成此文件。如何在預編譯中編譯自動生成的C文件?

的問題是,這個自動生成的文件* .c和* .h文件,而在我第一次編譯項目,將出現以下情況(按照這個順序):

  • 預建設:自動生成一些* .c和* .h
  • 構建:Eclipse將不會建立這個自動生成的文件

如果我重新編譯,這個文件將被編譯。也許這是由於eclipse將編譯什麼文件的發現過程而發生的。在開始編譯之前,我們沒有這個自動生成的* .c和* .h文件。

在我們編譯第二次,我們已經有了這個自動生成的文件,所以這個文件進行編譯。

回答

0

如果我正確理解你的問題,好像是建設項目在第一時間將自動生成必要的* .c和* .h源文件,但該項目將無法全力打造,因爲這些源文件未立即找到。經過短暫的延遲後,Eclipse會識別出有新文件添加到項目中,然後您可以再次構建,一切都將正常進行。那個聽起來是對的嗎?

假如是這樣的話,我立即想到的就是寫一些類型的腳本或makefile文件,使所有這些操作都可以發生在正確的順序,用一個單一的動作。根據您要有多髒讓你的手,這裏是一個鏈接;)

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.cdt.doc.user/concepts/cdt_c_makefile.htm

4

如果您想在完全自定義生成步驟發生,哪些文件需要後,將被刷新完全控制環境,工作目錄等。不要將其指定爲簡單的預構建步驟。轉到項目屬性 - >建造者 - >新建...並選擇「程序」。

在出現的對話框中,你必須在你的工具的執行更多的控制。例如,您可以在保存XML文件時運行工具,並且可以讓eclipse在運行時刷新所有自動生成的文件。

+0

謝謝,這解決了我的問題。只有一個注意:如果這個問題發生在多個項目上,則需要複製該構建器,因爲看起來不可能導入相同的實例。建造者的名字必須不同(例如:最後加上(1))。可以通過'運行>外部工具>打開外部工具配置 - >新建'來創建模板,以便更容易地複製構建器,但是隻有Workspace處於版本控制下時才能用於其他項目成員通常不是)。 – mMontu

+0

@mMontu您可以共享外部工具的配置,並保持他們的版本控制之下,如果你去到「常用」選項卡中的配置設置,然後選擇「共享文件」選項。但是,我認爲,最終,無論如何,任何不平凡的構建配置都應該依賴於任何IDE的構建系統。最終,正確的做法是使用一個真正的構建系統,如CMake。 – enobayram

+0

的確,我並不知道「共享文件」選項。我同意避免使用IDE的構建系統,但在處理遺留(和大型)項目時並不總是可行的。 – mMontu