1

我有这段代码,我试图使用-msse4.2(我试过msse4)在 GCC-TDM 1.7.4-2 上运行,但出现错误:

sse_lzcnt.c|7|warning: implicit declaration of function '__lzcnt16'|
sse_lzcnt.c|9|warning: too many arguments for format|
obj\Debug\sse_lzcnt.o||In function `main':|
sse_lzcnt.c|7|undefined reference to `__lzcnt16'|

未定义的引用通常是由于缺少 lib 文件(.a 结尾)而导致的链接错误,但内在标头不需要?

我确保内在函数头文件位于正确的包含目录中。这是代码,

#include <x86intrin.h>
#include <stdio.h>

int main()
{
        unsigned short __X  = 256;
        unsigned short RESULT = __lzcnt16(__X);

        printf("result: ", RESULT);

        return 0;
}
4

1 回答 1

2

您需要使用 gcc 命令行选项:-mlzcnt

于 2013-07-15T20:45:38.440 回答