mmintrin.h:47:5: error: use of undeclared identifier '__builtin_ia32_emms'

/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:47:5: error: use of undeclared identifier '__builtin_ia32_emms'; did you mean
      '__builtin_isless'?
    __builtin_ia32_emms();
    ^
/home/wangpan/Android/Sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include/math.h:617:12: note: '__builtin_isless' declared here
    return isless(__lcpp_x, __lcpp_y);
           ^
/home/wangpan/Android/Sdk/ndk-bundle/sysroot/usr/include/math.h:313:22: note: expanded from macro 'isless'
#define isless(x, y) __builtin_isless((x), (y))
                     ^
In file included from /home/wangpan/work/gitnew/opencv_demo/demo/mibokeh_clut/main.cpp:11:
In file included from /home/wangpan/work/gitnew/opencv_demo/demo/mibokeh_clut/include/NEON_2_SSE.h:56:
In file included from /home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/xmmintrin.h:27:
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:47:25: error: too few arguments to function call, expected 2, have 0
    __builtin_ia32_emms();
                        ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:64:19: error: use of undeclared identifier '__builtin_ia32_vec_init_v2si'
    return (__m64)__builtin_ia32_vec_init_v2si(__i, 0);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:81:12: error: use of undeclared identifier '__builtin_ia32_vec_ext_v2si'
    return __builtin_ia32_vec_ext_v2si((__v2si)__m, 0);
           ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:143:19: error: use of undeclared identifier '__builtin_ia32_packsswb'
    return (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:173:19: error: use of undeclared identifier '__builtin_ia32_packssdw'
    return (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:203:19: error: use of undeclared identifier '__builtin_ia32_packuswb'
    return (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:230:19: error: use of undeclared identifier '__builtin_ia32_punpckhbw'
    return (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:253:19: error: use of undeclared identifier '__builtin_ia32_punpckhwd'
    return (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:274:19: error: use of undeclared identifier '__builtin_ia32_punpckhdq'
    return (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:301:19: error: use of undeclared identifier '__builtin_ia32_punpcklbw'
    return (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:324:19: error: use of undeclared identifier '__builtin_ia32_punpcklwd'
    return (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:345:19: error: use of undeclared identifier '__builtin_ia32_punpckldq'
    return (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:366:19: error: use of undeclared identifier '__builtin_ia32_paddb'
    return (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:387:19: error: use of undeclared identifier '__builtin_ia32_paddw'
    return (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:408:19: error: use of undeclared identifier '__builtin_ia32_paddd'
    return (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:430:19: error: use of undeclared identifier '__builtin_ia32_paddsb'
    return (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:453:19: error: use of undeclared identifier '__builtin_ia32_paddsw'
    return (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2);
                  ^
/home/wangpan/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/6.0.2/include/mmintrin.h:475:19: error: use of undeclared identifier '__builtin_ia32_paddusb'
    return (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2);
                  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
CMakeFiles/mibokeh_clut.dir/build.make:247: recipe for target 'CMakeFiles/mibokeh_clut.dir/main.cpp.o' failed
make[2]: *** [CMakeFiles/mibokeh_clut.dir/main.cpp.o] Error 1
make[2]: Leaving directory '/home/wangpan/work/gitnew/opencv_demo/demo/mibokeh_clut/build'
CMakeFiles/Makefile2:75: recipe for target 'CMakeFiles/mibokeh_clut.dir/all' failed
make[1]: *** [CMakeFiles/mibokeh_clut.dir/all] Error 2
make[1]: Leaving directory '/home/wangpan/work/gitnew/opencv_demo/demo/mibokeh_clut/build'
Makefile:86: recipe for target 'all' failed
make: *** [all] Error 2
 

查了很多资料,觉得是跑在x86才会有这个__builtin_ia32_emms等方法。而且看了下android官方文档。

对比我的项目中,确实我开始先调试了x86运行的程序,并且引入了NEON_2_SSE.h。于是可能冲突了,去掉编译就ok了。

<think>好的,我现在需要解决用户遇到的编译错误:D:\QT_project\wifishiyan\wifi.h:122: error: Use of undeclared identifier 'Integer'。用户可能对C++或Qt开发不太熟悉,所以我要逐步分析可能的原因和解决方法。 首先,错误信息指出在wifi.h文件的第122行使用了未声明的标识符'Integer'。C++中没有名为Integer的标准类型,但可能有几种情况导致这个问题: 1. **拼写错误**:用户可能想使用int或其他类型,但错误拼写为Integer。需要检查拼写是否正确。 2. **未包含头文件**:如果用户使用的是某个库中的Integer类,比如Qt的QString转换函数toInt()返回int,而可能用户误用了其他库中的类型。或者,如果用户自己定义了Integer类型,但没有包含相应的头文件。 3. **命名空间问题**:如果Integer类位于某个命名空间内,比如标准库或其他库,但没有使用using声明或完全限定名称。 接下来,我需要考虑常见的可能性。例如,在Qt中,通常使用int而不是Integer。可能用户错误地将int写成了Integer,或者试图使用其他库中的类型,如Java风格的Integer类,但C++标准库中并没有这个。不过,C++11引入了std::stoi等函数,但类型仍然是int。 可能的解决方案步骤: 1. **检查拼写**:确认是否应该是int而不是Integer。 2. **包含必要的头文件**:如果确实需要使用某个特定的Integer类,比如来自第三方库,确保包含了对应的头文件。 3. **检查命名空间**:如果Integer在某个命名空间里,比如MyLib::Integer,需要使用完全限定名或添加using声明。 4. **替换为正确类型**:如果用户本意是使用int,建议将Integer改为int。 另外,用户的项目路径中有QT_project,可能是在使用Qt框架。Qt中处理整数通常用int或qint32等类型,没有Integer。所以很可能用户误写了类型名。 需要建议用户检查第122行的代码,确认是否拼写错误,或者是否需要包含其他头文件。例如,如果使用了某种自定义的Integer类型,确保其声明在正确的位置并被包含进来。如果用户确实需要大整数类,可能需要使用类似Boost库中的cpp_int,或者自己实现,但标准情况下还是用int或long等基本类型。</think>这个错误提示说明你的代码在 `wifi.h` 文件的第122行使用了未定义的标识符 `Integer`。以下是逐步排查和解决方法: --- ### 1. **检查拼写错误** C++ 标准库中没有 `Integer` 类型。 - 如果你希望使用 **整数类型**,正确写法是 `int`(例如 `int x = 10;`)。 - 如果是 **Qt 框架的特定类型**,可能是 `qint32` 或 `quint32`(需包含头文件 `<QtGlobal>`)。 --- ### 2. **检查是否缺失头文件** 如果 `Integer` 是某个第三方库或自定义类型: - **确认是否包含相关头文件**,例如: ```cpp #include "YourIntegerClassHeader.h" // 替换为实际头文件名 ``` - 如果是 Java 风格的 `Integer` 封装类,C++ 中需要手动实现,或直接使用 `int`。 --- ### 3. **检查命名空间** 如果 `Integer` 定义在某个命名空间内,例如: ```cpp namespace MyLib { class Integer { ... }; } ``` 使用时需明确指定命名空间: ```cpp MyLib::Integer myInt; // 正确写法 ``` --- ### 4. **替换为 C++ 标准类型** 如果目标只是存储整数,**直接使用 `int`**: ```cpp int value = 42; // 替换代码中的 Integer ``` --- ### 示例修正 假设原代码是: ```cpp Integer wifiStatus = 1; // 第122行 ``` 修正为: ```cpp int wifiStatus = 1; // 使用标准整数类型 ``` --- ### 5. **其他可能性** - 如果是 **类型别名**(如 `typedef int Integer;`),检查别名是否在头文件中正确定义。 - 如果使用 **Qt 属性系统**(如 `Q_PROPERTY`),确保类型名称正确。 --- ### 总结 此错误通常是因为 **拼写错误** 或 **缺失类型定义**。根据你的代码场景,选择替换为 `int` 或补充对应的头文件及命名空间。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值