2013-02-06 71 views
7

我爲公司編寫了一個程序。他們想要源代碼。向客戶發佈部分源代碼

該程序使用我爲多個客戶端的多個項目編寫的代碼。

我想只發布此程序使用的代碼。因此,如果一個名爲Utils.pas的共享文件包含十個函數,並且該程序僅使用其中兩個函數,那麼我想發佈一個名爲Utils.pas的文件,其中只有這兩個函數。

代碼是使用Delphi編寫的Borland Pascal。

任何人都知道我該怎麼做?

澄清:我不是在問許可。我希望客戶只有他們的程序使用的源代碼,沒有別的。

+2

如果你不能與你現有的文件結構,你的避風港」做把它分解成足夠的碎片。這是擁有全部源文件的危險。 – Blrfl

+0

如果您爲他們製作的代碼使用了您製作的「公共庫」,爲什麼不簡單地爲他們的項目提供.pas文件,以及爲「公共庫」提供了編譯後的DCU文件? – LaKraven

+1

任何特定於所有客戶的東西,將其放入您自己的組件包中,並且只爲他們提供沒有源代碼的BPL。然後,剩餘的來源將是特定客戶。但是,如果您有一個特定於某個客戶的代碼,而您不希望特定的其他客戶看到該代碼,那麼您還必須爲每個客戶的代碼生成一個BPL。這仍然是一項艱鉅的任務,我祝你好運。 –

回答

2

將它們的代碼從utils.pas中分離出來,放到client_xxxx_utils.pas中。充電他們平時的工作做這個工作,重建,冒煙測試等。問題解決了。

好的,如果找出修剪的東西是件麻煩事... 編譯程序,並查看utils.pas單元。通常情況下,您的邊緣會出現藍點,表示您可以設置中斷點。 「死代碼」不會在邊距中出現藍點,因爲該代碼已被鏈接器清除。任何沒有藍點的東西都是他們不需要的東西。

對於更自動化的方法,Peganza Pascal Analyzer可能會在其中一個報告中識別出死代碼。

這裏有一些相關的問題在這裏所以用類似的答案(由一些我!)

Finding unused (aka "dead") code in Delphi

How to "automatically" remove unused units from uses clause?