我試圖測試libstdc++
的版本,因爲版本中的std::regex
is implemented, but largely broken,在版本4.9.0之前隨GCC發佈。如何在編譯時測試libstdC++的版本,而不是GCC?
需要注意的是:
我需要測試的
libstdc++
的版本,而不是GCC因爲鏘還支持使用libstdc++
作爲標準庫。這排除了testing the__GNUC_PATCHLEVEL__
,__GNUC__
, and__GNUC_MINOR__
macros。的
__GLIBCXX__
宏是一個日期,而不是一個版本號和does not increase monotonically。例如,GCC 4.8.4附帶#define __GLIBCXX__ 20150426
,這比GCC 4.9.0的發佈日期更新。
是否有測試libstdc++
不依賴於使用GCC編譯我的版本的任何可移植的方法?
如果你知道它在某個版本的破碎,然後對其進行測試,看看它壞了,如果是,那麼你有破碎的版本,如果沒有,那麼你有工作版本。 – ydobonebi
在實踐中,確定沒有給出版本的版本的最佳方法是測試已知行爲。只是想澄清一點。除此之外,你在使用什麼操作系統?我正在檢查窗口,如果我可以確定我的ersion數字或不... – ydobonebi
Quinn Roundy:我寧願實際測試版本。該錯誤只發生在運行時,所以我將不得不編譯(並執行)測試程序作爲我的構建過程的一部分。在交叉編譯時,這可能會中斷。 –