gpt4 book ai didi

c++ - 调用 always_inline 时内联失败,Qt 中的目标特定选项不匹配

转载 作者:行者123 更新时间:2023-11-28 04:06:31 24 4
gpt4 key购买 nike

我在 QtCreator 中使用 C++ 中的 AES 指令集进行 AES 加密,这是我的代码:

void aes256_enc(int8_t *plainText, int8_t *cipherText, __m256i *exp_enc_key)
{
__m256i m = _mm256_loadu_si256((__m256i *) plainText);

m = _mm256_xor_si256(m, exp_enc_key[0]);
for (int i = 1; i < 10; i++) {
m = _mm256_aesenc_epi128(m, exp_enc_key[i]);
}
m = _mm256_aesenclast_epi128(m, exp_enc_key[10]);

_mm256_storeu_si256((__m256i *) cipherText, m);
}

这是在我的 .pro 文件中:

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

QMAKE_CXXFLAGS +=-march=native -maes

SOURCES += \
main.cpp \
aes256.cpp

HEADERS += \
aes256.h

但是我还是会报这样的错误:

/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/vaesintrin.h:50: error: inlining failed in call to always_inline ‘__m256i _mm256_aesenc_epi128(__m256i, __m256i)’: target specific option mismatch
50 | _mm256_aesenc_epi128 (__m256i __A, __m256i __B)
| ^~~~~~~~~~~~~~~~~~~~

我的 CPU 是 i5-4670。

最佳答案

如果您的目标处理器支持 AVX-512 aka vaes,请在您的 .pro 文件中添加此行:

QMAKE_CXXFLAGS += -mvaes

vaesintrin.h 中这个定义似乎需要 vaes

/* Default attributes for YMM forms. */
#define __DEFAULT_FN_ATTRS __attribute__((__always_inline__, __nodebug__, __target__("vaes"), __min_vector_width__(256)))

作为您的处理器 i5-4670 does not support it ,试试这个:

DEFINES += "NO_AVX512=1"

关于c++ - 调用 always_inline 时内联失败,Qt 中的目标特定选项不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58620893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com