2010-10-24 152 views
12

在C++程序中使用GNU getopt是否是一種糟糕的形式?是否有C++特定的替代方案,還是應該使用getopt?C++和命令行選項

+0

不是重複的,但請參閱:[適用於專有C++程序的getopt實現?](http://stackoverflow.com/questions/456797/getopt-implementation-suitable-for-proprietary-c-programs) 。 – 2010-10-24 04:03:51

回答

9

沒有什麼錯誤使用getopt的。有大量的面向對象的替代方案,包括Boost.Program_options,以及POCO和ACE中的類。

+0

+1提升計劃選項。 – thekidder 2010-10-24 04:42:38

3

完全沒有,getopt在C++中是完全正確的。 Boost :: program_options要求安裝Boost庫,但許多人可能沒有。

+0

Boost可以構建爲靜態庫。否則,您實際上必須將動態庫與您的項目*無論如何*。 – greyfade 2010-10-24 04:11:50

+1

我的意思是許多Linux發行版的「devel」包可能默認不包含Boost。 – greg 2010-10-24 12:07:01

2

嘗試CLPP庫。它是用於命令行參數解析的簡單而靈活的庫。僅頭和跨平臺。僅使用ISO C++和Boost C++庫。恕我直言,它比Boost.Program_options更容易。

庫:2010年10月http://sourceforge.net/projects/clp-parser

26 - 新版本2.0rc。修復了很多錯誤,對源代碼,文檔,示例和註釋進行了全面的重構。