2015-10-09 71 views
2

什麼是可用於構建z3的最低Visual Studio編譯器?我曾嘗試從github提交2d2ec385410a133bfb8c699d1c2c85fcf141f4b8,並且無法使用MSVC 2008和2010進行構建。我們需要它與MSVC 2008一起工作,但是在嘗試將const_iterator類型轉換爲迭代器類型時使用該編譯器進行構建時導致失敗。所以,我想與2010年MSVC和得到這個:z3最低Visual Studio編譯器版本

.. \ SRC \ UTIL \ hwf.cpp(320):錯誤C3861: '_mm_fmadd_sd':找不到

感謝標識,

湯姆

回答

0

Visual Studio 2008和2010都不再受Z3的支持,而且還受到微軟其餘的支持(主流支持已於今年早些時候結束,請參閱Support Lifecycle)。

_mm_fmadd_sd是一個浮點融合乘法的內在因素,並且這在VS 2010中是絕對可用的,而且我們使用VS 2010構建了Z3很長時間,所以不會成爲問題。出於某種原因,您的頭文件不包含該函數聲明,或編譯器宏設置不正確。絕對要確保你在VS2010命令提示符下運行編譯,並且你沒有使用Express版本(至少它沒有與OpenMP以及可能的其他擴展一起提供)。

+0

我認爲融合乘法加法問題可能是由於使用32位編譯器。不確定該指令是否適用於x64芯片。 無論如何,我們需要32位Visual Studio 2008構建。 謝謝你的迴應,Christoper(Chris?)。 –

+0

fusion-multiply-add的實際彙編指令僅適用於itanium和SSE5(6?),不適用於x86或amd64,但如果編譯器宏是正確的,則應選擇平臺上可用的任何指令。我們很久以前就停止了對VS2008的支持,它很可能不起作用,我甚至沒有安裝過我可以試用的副本;在做任何其他事情之前,肯定會試着讓它在VS2010中工作。 –

+0

有些事情要檢查:使用Visual Studio命令提示符(2010),不要使用任何說「cross」或「x64」的東西。使用32位Python來運行腳本/ mk_make.py,否則你以後肯定會遇到問題。運行python腳本時不要使用-x/mk_make.py –

相關問題