2011-11-01 60 views
2

我已經開始使用waf構建系統來替代CMake。到目前爲止,這是一次很棒的體驗。但是,我無法找出將條件優化標誌傳遞給編譯器的好方法。我寫的一些代碼受益於特定優化標誌,這些標誌僅在最近的gcc版本中可用,但我希望我的代碼儘可能便攜。因此,我想在將編譯器添加到用於編譯的cxx標誌列表之前檢查編譯器是否支持這些標誌。最簡單的方法是什麼?檢查waf中的編譯器優化標誌

回答

4

可以使用ConfigSet cfg.env的藏匿功能的代碼塊來測試CFLAGS:

  • 藏匿cfg.env
  • 添加CFLAGS
  • 進行檢查,如果檢查失敗,恢復CFG .env

並記住特定的CFLAGS不可移植,如果您更改編譯器或目標架構,它們將無法工作。您可能希望您的代碼使用不同的編譯器,因此只有在可以識別編譯器時才應啓用(添加)特定的CFLAGS。

如果你的代碼是開源的,如果你的代碼不是性能關鍵的,那麼不要打擾CFLAGS。 大多數Linux發行版都將根據目標添加全局優化標誌。