0

这是我第一次尝试Botan,所以策略是先尝试做一件事,一次做一件事。

我要做的第一件事很简单:

#include <botan/botan.h> 
class Myclass { 
    ... 
    Botan::AutoSeeded_RNG rng; 
} 

中的所有.h文件/usr/local/include/botan都在工作,但我必须在/usr/local/include/botan/internal/*.h那里添加其他文件。还有.cpp我必须一一添加到编译列表中的所有文件。

因此,现在 Botan lib 中所有需要的 .cpp 似乎都已完成,不再有错误。但是最后一个编译错误似乎与操作系统有关..??!我完全不知道如何解决这个问题..

In file included from /usr/local/src/botan/block/aes_ssse3/aes_ssse3.cpp:16:0:
/usr/lib/gcc/x86_64-redhat-linux/6.1.1/include/tmmintrin.h: In function ‘__m128i Botan::{anonymous}::aes_schedule_transform(__m128i, __m128i, __m128i)’:
/usr/lib/gcc/x86_64-redhat-linux/6.1.1/include/tmmintrin.h:136:1: error: inlining failed in call to always_inline ‘__m128i _mm_shuffle_epi8(__m128i, __m128i)’: target specific option mismatch
 _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
 ^~~~~~~~~~~~~~~~
/usr/local/src/botan/block/aes_ssse3/aes_ssse3.cpp:62:24: note: called from here
    return _mm_xor_si128(

有人见过这个吗?非常感谢任何帮助。谢谢!

NetBeans IDE 8.1使用fedora24

4

1 回答 1

2

添加-msse3到 Makefile 解决了这个问题。推荐:

  1. 参考 Botan Makefile

  2. 调用 always_inline '__m128i _mm_cvtepu8_epi32(__m128i)' 时内联失败:目标特定选项不匹配 _mm_cvtepu8_epi32 (__m128i __X)

  3. x86 SIMD 内部函数的头文件

于 2016-08-06T07:45:50.327 回答