我正在開發C++類的集合,並且正在努力如何以維護組織的方式共享代碼,而不會影響集合用戶編譯的簡易性。我所看到的如何構建C++源代碼的「庫」?
選項包括:
- 分發編譯庫文件
- 放入頭文件的源(與隱內嵌在這個answer討論)
- 使用符號鏈接允許編譯器來查找這些文件。
我目前使用,其中,每個類的我想包括我的符號鏈接每類新報頭和源文件(例如,ln -s <path_to_class folder>/myclass.cpp
)這種運作良好,只是我不能移動項目文件夾的第三個選項位置(它打破了所有的符號鏈接),我必須將所有這些符號鏈接的文件掛起來。
我喜歡第二個選項(它具有Java的外觀),但是我擔心如果一切聲明爲內聯,代碼大小膨脹。
該集合的用戶將在某處創建項目文件夾,並以某種方式將該集合包含到其編譯過程中。
我想幾件事情成爲可能:
- 容易編譯(類似
gcc *.cpp
從項目文件夾) - 在未編譯表單庫方便地分發。
- 按模塊組織圖書館。
- 編譯的代碼大小沒有臃腫。
我並不擔心文檔(Doxygen負責)或編譯時間:整體模塊很小,甚至最慢的機器上的最大項目也不會超過幾秒的時間來編譯。
我使用的GCC編譯器,如果它有任何區別。
庫文件基本上是標準的。如果您對建立圖書館有所保留,請考慮scons。它比make更容易使用,並且不會將代碼綁定到configure/make路徑。它也使得Windows的端口更容易。 – Jiminion