簡體   English   中英

為什么Delphi不能將DCU文件輸出到正確的文件夾中?

[英]Why Delphi does not output the DCU files in the correct folder?

我有一個項目(C:\\ Test \\ Test.dpr),它使用屬於庫(MyLib.DPK)的文件(External.pas)。 庫中的所有文件都可以通過“搜索”路徑訪問,但我也直接在我的DPR文件中包含了External.pas:

program Test;

uses
  External in '..\Packages\MyLib\External.pas',   <------ the 'external' file
  FormMain in 'FormMain.pas' {frmMain};

對於這個項目,我將'Output directory'和'Output DCU dir'設置為“。\\ $(Platform)_ $(Config)”。

當我編譯時,exe文件的所有DCU都寫在正確的輸出文件夾中:c:\\ Test \\ Win64_Debug \\

但是,External.dcu在.. \\ Packages \\ MyLib \\ External.dcu中生成
而不是c:\\ Test \\ Win64_Debug \\

這是為什么?


讓我以不同的方式提出這個問題:如果我在DPR項目中追加一個位於不同文件夾的PAS文件,是不是所有的DCU文件(包括外部文件)都不能生成在與EXE文件相同的文件夾中?

文檔

輸出目錄

指定編譯器應放置可執行文件的位置。

單位輸出目錄

指定包含已編譯單元(.dcu)的單獨目錄。

聽起來您需要指定單位輸出目錄以及輸出目錄。 我個人傾向於將這兩個目錄分開。

是的項目選項UI可能非常混亂,特別是因為要訪問每個目標平台的設置,您需要通過下拉列表切換到該目標平台。

如果您可以一次只查看所有目標平台的配置,那么IDE的這一部分可以做得更好。

現在,如果您希望能夠在一個位置(所有配置)上維護輸出路徑設置,則只需確保特定目標配置不會覆蓋它。

為此,請轉到特定目標配置,然后單擊字段條目本身,而不是單擊其前面的+號。

這將擴展當前屬性字段,並顯示可以從中繼承此屬性的父配置的值。

項目選擇

注意:雖然確實可以繼承許多屬性(目標配置中的屬性值被添加到父方案中的屬性中) Output directoryUnit output directory因為它們只能包含一個值,只是被重寫。

因此,為了確保在每個特定目標配置中使用來自All configurations輸出位置,它們都不應該為輸出位置定義自定義值。

換句話說, Release configuration - ...Release configuration - ...Debug configuration - ...當您擴展特定屬性時,必須為空,如上圖所示。

該死的......我再次做到了......我為“所有配置 - 所有平台”設置了目標,但是“Debug config-64bit windows platform”的路徑已經設置為其他東西。 因此,當我在'所有配置'中設置(正確)路徑時,'Debug config-64bit windows platform'保持不變。 我有12種可能的配置(調試,發布,預發布),所以我沒有看到'Debug config-64bit windows platform'仍然設置為原始值。 項目選項的GUI可能會導致很多錯誤!

謝謝大衛。 抱歉浪費你的時間。 我仍然在努力使用Delphi路徑。 整個IDE中沒有任何東西像路徑(搜索,輸出,庫等)一樣令人困惑/怪異

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM