[英]Error compiling Boost.Log
我正在嘗試編譯Boost日志庫,並且不斷從dump_avx2.cpp
文件中獲取此錯誤。
error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'dump_data_avx2' that is compiled without support for 'sse4.2'
boost/boost/libs/log/src/dump_avx2.cpp:71:31: note: expanded from macro 'BOOST_LOG_AUX_MM_CONSTANTS'
const __m256i mm_char_0 = _mm256_set1_epi32(0x30303030);\
^
我收到很多錯誤,這些錯誤與上面的錯誤非常相似,所有錯誤消息均相同,但是它們在文件中的位置不同,以供參考。我在Boost.Log子模塊的提交哈希值68701167a1020b0b4c47b76e31d3a3da9e2faf3f
來自github回購( https://github.com/boostorg/boost )
有誰知道我該如何解決這個問題? 我正在使用C ++ 14編譯器進行構建,這是我輸入g++ --version
Apple LLVM version 8.0.0 (clang-800.0.42.1)
謝謝!
注意,我應該澄清一下,在這種情況下,需要單獨編譯該庫。
注意:似乎有兩個相關的源文件dump_ssse3.cpp
和提到的dump_avx2.cpp
文件,我是否只需要編譯其中一個? 我無法從build
文件夾的Jamfile中找出要做什么:(
看起來像是clang(LLVM)中的錯誤。 首先,內在函數屬於AVX2,而不是SSE4.2。 其次,使用dump_avx2.cpp
編譯整個dump_avx2.cpp
文件,因此啟用了所需的擴展名。 您可以在b2的錯誤消息中看到編譯器開關。 不, dump_ssse3.cpp
和dump_avx2.cpp
都應該編譯。 該庫對CPU中的可用指令進行運行時檢測,然后選擇適當的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.