我剛剛注意到,每當我對我的任何一個Delphi 2010項目進行增量編譯(ctrl-F9)時,我的項目中引用的所有JEDI單元都會重新編譯,儘管它們沒有以任何方式進行更改。事實上,如果我創建一個新項目,將JEDI控件放在窗體上並編譯,我會看到重新編譯了所有JEDI依賴項。如果我認爲在不改變我的項目的情況下再次點擊ctrl-F9,也會發生同樣的情況。JEDI控件總是重新編譯
任何人都知道是什麼原因造成的?
更新:該問題似乎與我的系統上的子目錄jvcl \ run有關。每次執行Delphi編譯時(即使沒有觸及我的項目源),此文件夾中的所有單元都會重新編譯。即使編譯好的dcus已存在於jvcl \ lib \ d14中,編譯後的dcus也會在每個編譯的子目錄中找到並留下。我沒有jvcl \在我的庫路徑上運行。另外,如果我將jvcl \ run目錄移動到硬盤上的其他地方,我的項目編譯並鏈接成功,大概在jvcl \ lib \ d14(這是我的路徑)中找到了dcus。
訣竅的確是離開源出INCLUDEPATH,只有預編譯DCU的。否則改變定義或觸摸源文件將強制重新編譯.dcu在任何地方飛來飛去(這會使後續編譯複雜化) – 2010-03-19 16:30:09
我已經將這些控件安裝了一段時間(幾個月),而沒有看到這種行爲。檢查我的DCU我發現jvcl \ run中的所有DCU都顯示三分鐘前我上次編譯的日期和時間。它是該子目錄中的每個單元,包括我懷疑在任何參考鏈中的單元 - 例如JvFormPlacement。所有其他子目錄都有原始安裝日期(2009年11月19日)。 – 2010-03-19 16:32:30
@Marco:jvcl \ run中的單元正在重新編譯,即使這些單元是預編譯在jvcl \ lib \ D14子目錄中的。我最近沒有對jvcl位置進行任何更改。 jvcl \ lib \ D14在我的庫路徑中; jvcl \ run不在我的庫路徑中(但它*在*我的「瀏覽路徑」中)。有什麼建議麼? – 2010-03-19 16:43:52