我正在使用Visual Studio 2013附帶的默認C++編譯器(我想它叫做「Visual Studio C++編譯器」),標誌爲/Ox
(Full Optimization)。由於浮點副作用,我必須在使用gcc
編譯器時禁用-ffast-math
標誌。在Visual Studio C++編譯器的配置中是否有與此標誌等效的選項?是否存在與Visual Studio C++編譯器等效的-ffast-math標誌
回答
您正在尋找/fp:precise
,雖然這也是默認設置。
如果您需要VS可以提供的最嚴格的浮點計算,請嘗試/fp:strict
,儘管這可能是矯枉過正。
您可能沒有什麼可擔心的,因爲默認行爲應該是您的願望。只要確保沒有指定/fp:fast
,但是如果您嘗試使用/fp:fast
和/fp:precise
進行編譯,則無論如何都會收到編譯錯誤,因此應該很容易理解。
Hans Passant提供給MSDN website的鏈接提供了您可能需要的所有詳細信息。
沒有一個MSVC++選項啓用由g ++ -ffast-math
調用的優化。
你確定嗎?那麼'/ fp:'怎麼樣? – 2016-10-25 07:00:19
Microsoft/fp:fast不會調用這些優化。您可能會對英特爾C++使用衝突感到困惑,其中fast = 2的操作類似於g ++ -ffast-math(除了複雜的有限範圍外,fast = 1會調用重要的操作)。 – tim18 2017-07-20 17:45:10
顯然它可能不完全相同,但它確實指定了OP所要求的浮點操作行爲**。他沒有詢問所有' - 數學'的副作用 – 2017-07-21 01:01:28
- 1. g ++等效的編譯器標誌到VC++編譯器標誌
- 2. Visual Studio C++編譯器標誌:什麼是-Zm200?
- 3. 在Visual Studio中是否存在與malloc_history等效的內容?
- 4. 如何在Visual Studio中設置C++編譯器標誌(2015
- 5. Objective-C編譯器標誌
- 6. Visual Studio C編譯器中是否存在單獨的bitset64內部函數?
- 7. 編譯在Visual Studio(非.NET)「標準」 C++
- 8. 編譯C文件在Matlab與Visual Studio
- 9. 如何在Visual Studio 2010中設置CUDA編譯器標誌?
- 10. C++編譯器標誌11
- 11. 在Visual Studio中是否與Eclipse的「運行配置」等效?
- 12. 什麼是「DNS_BLOCK_ASSERTIONS」(C編譯器標誌)?
- 13. 如何在使用Visual Studio編譯時設置其他F#編譯器標誌?
- 14. 添加編譯器標誌爲Visual Studio 2005的CMake 2.8.1
- 15. 當使用Microsoft的Visual C++編譯器時,是否有與gcc等價的pedantic?
- 16. 與Visual Studio的C++編譯錯誤
- 17. Microsoft Visual C++ Express編譯器是否編譯C代碼?
- 18. 編譯器內是否有預編譯IPV6的標誌
- 19. 在Visual Studio 2010中編譯`C`文件時,它是否編譯爲C++文件?
- 20. Visual Studio C編譯器的路徑
- 21. Visual Studio for C++使用的編譯器?
- 22. Visual Studio 2010的C++編譯器
- 23. 是否存在Visual C++的編譯器標誌以檢查對printf()的調用的類型安全性?
- 24. Visual studio編譯器標誌/ arch和性能
- 25. 與Visual Studio編譯C程序
- 26. 編譯C++在Visual Studio在彙編
- 27. Visual Studio 2010 IDE與Visual C++ 6.0編譯器?
- 28. Visual Studio是否不斷編譯?
- 29. C++ -malign-double編譯器標誌
- 30. Matlab不檢測Visual Studio C++編譯器
http://msdn.microsoft.com/en-us/library/e7s85ffb.aspx – 2014-10-19 14:53:52
請注意,在gcc中禁用'-ffast-math'意味着不傳遞該選項,它更像是「不啓用」。 – 2014-10-21 19:17:12