2016-05-13 109 views
0

我有一個德爾福2007年項目,使用幾個非可視庫(如OmniXML,Synapse,從TntUnicode一些類)分佈作爲源代碼(.pas文件)。德爾福2007年項目庫路徑

我可以在IDE中將它們的路徑添加到Tools -> Options -> Environment -> Delphi -> Library Win32 -> Library path,但它看起來不是一個好方法,因爲需要在每臺計算機上設置這些路徑,並且所有項目都必須使用相同的庫版本。

有什麼方法可以將它們添加到項目中嗎?據我所知,可能在項目選項How can I add a library path to a delphi project?較新的德爾福版本,但在2007年,我沒有看到這樣的選項。

我只在目錄/條件中找到搜索路徑,但它對於發佈/調試配置是分開的,我不知道除了${BDS}之外,還有哪些宏可用。此外,我不確定它是否打算用於此類用途。也許有更好的選擇?

enter image description here

+1

我把所有的.dcu文件放在本地樹中,並將它們的相對路徑添加到項目搜索路徑中。如果你有調試.dcu的,你也可以將它們添加到本地樹中。 –

+0

是的,謝謝,看起來像「libs \ mylib \ source」這樣的相對路徑工作正常。 – AlexP11223

回答

4

我更喜歡在每個Delphi版本的工具選項中沒有額外的庫路徑,並且讓每個項目都有自己的搜索路徑。

  1. 我更喜歡我的設置存在,並且對於所有構建配置都是相同的。爲此,我確保我使用根節點。不幸的是,在Delphi 2007中這不是直接的,因爲你有Build = Debug設置和Build = Release設置,如果我沒有記錯的話,Delphi 2007中沒有ROOT節點。

  2. 對於你來說,您可能需要特別注意將值保存在調試版本中,並且手動發佈版本支持SAME,因爲我相信您無法在Delphi 2007中自動執行此操作。

  3. 要回答您的問題,不需要完整路徑並且通常不需要使用$(PROJECTDIR)。也不需要完整的路徑。您需要使用相對路徑,如下所示:..\Lib\Dir1;..\Lib\Dir2;..\Lib\Dir3等。我使用相對路徑的目標是滿足檢查代碼並在任何地方構建代碼的願望。只能在簽出到某個目錄(C:\YOURAPP)時才能建立的代碼很sl,,我敢說懶惰,以及不切實際,也很常見,以至於您可能認爲這是最佳做法。這種草率的努力代碼庫阻止正確的持續集成實踐,防止在不同的分支機構或主要版本中有多個工作副本等等,並且通常是通過將所有代碼幾乎不在任何虛擬機中構建而實現的。沒有人知道如何設置他們的代碼,所以他們把它推到虛擬機中,讓混亂的模型。

  4. 當你絕對不能使用相對路徑,例如當你不知道其他東西在哪裏時,如果你的公司被稱爲ACME,你應該把你的OWN設置在房子根文件夾變量中,我會稱之爲ACMEROOT ,我會自己設定它。在我現在的公司,我們有一個我們稱之爲PS的根變量,因爲我們的產品的初始資本是P和S.然後我們使用$(PS)類似於庫路徑中使用的方法$(BDS)

  5. 有時我發現有一個外部工具,我已經寫了這個工具,它會爲我設置環境變量,直接向IDE寫入我想要的環境變量,並且我有一個檢查代碼的做法從版本控制和運行此工具來設置我的環境。恰巧我現在可以將代碼檢查到新計算機上並運行它,而無需手動設置軟件包,安裝組件,配置庫路徑或項目以及所有內容。不幸的是,IDE並沒有提供這種做法所需的一切,但是有各種各樣的第三方工具可以爲您提供便於清理的易於構建代碼庫。

+0

是的,相對路徑正是我想要的,我只是不確定Delphi如何解析搜索路徑中的相對路徑,並且認爲我需要類似'$ {ProjectDir}'的東西(在構建過程中自動設置爲項目路徑,就像在Visual中工作室),以確保它始終有效。 – AlexP11223

+0

即使在視覺工作室中,除非您發現令人困惑,否則應該使用相對路徑。 –

-3

是的。打開Delphi。轉到項目經理。右鍵單擊並選擇選項。 從樹中選擇資源編譯器並選擇目錄和條件。

從這裏您可以定義您的項目的搜索路徑。不要擔心$(鏈接)。只需使用真實的路徑。當然,每臺電腦都需要配置相同,但無論如何都是如此。

+0

你確定你在談論D2007嗎?沒有「資源編譯器」。無論如何,我已經找到搜索路徑,請參閱上面的截圖。但我認爲應該爲項目目錄存在一些宏,以避免使用完整路徑。 – AlexP11223

+2

資源編譯器的搜索路徑與庫路徑無關。 – dummzeuch

+0

這不僅與庫路徑無關,在Delphi 2007中也不存在,這是此問題特別標記的IDE版本。 –