-1

我有一个在 Visual Studio 2017 中构建的 C++ 库,它使用 AVX-512 内在函数。我需要将库链接到 VS2008 C++ 代码。该库用于从图像中提取线条。所有内在指令都封装在库中。VS2008 代码传入char* data, LineSpec(具有 4 个浮点数的结构)和char* result,其中填充了提取的行。

由于错误 C1083,我无法链接库:无法打开包含文件:immintrin.h。出于同样的原因,我也无法使用 VS2008 工具集在 VS2017 中构建库。

目标是使用 AVX-512 指令提高提取速度,同时使用 VS2008 编译其余代码。我是内在函数和混合平台的新手。您对如何在 VS2008 中使用该库有什么建议吗?

4

1 回答 1

2

你不能

要调用使用 ymm 寄存器的函数,编译器需要发出指令以根据 ABI 准备这些指令。但是AVX-512在2008年就不存在了,因此VS2008无法知道ABI或AVX-512指令

然后在链接时,您还需要了解指令集以知道要修复哪个地址,尽管使用存储在目标代码中的偏移量可能更容易解决

简而言之,您需要更新编译器而不是使用十年前的编译器

于 2018-09-27T15:12:44.717 回答