簡體   English   中英

編譯Boost.Log時出錯

[英]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.cppdump_avx2.cpp都應該編譯。 該庫對CPU中的可用指令進行運行時檢測,然后選擇適當的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM