“英特尔OpenCL SDK for FPGA编译内核以使用aoc命令进行仿真”给出链接器错误

“英特尔OpenCL SDK for FPGA编译内核以使用aoc命令进行仿真”给出链接器错误,opencl,fpga,intel-fpga,Opencl,Fpga,Intel Fpga,我正在尝试编译一个内核,以便在Intel FPGA SDK中使用aoc进行仿真,我已经尽可能地设置了所有环境变量,即使使用SDK中包含的init_opencl.bat。 为了使用visual studio链接器,我正在使用visual studio 2017 developers命令promt运行以下行: aoc -march=emulator -v -board=a10gx my_kernel.cl -o my_kernel.aocx 但是它总是抛出一个链接器错误(错误是西班牙语的,很抱歉)

我正在尝试编译一个内核,以便在Intel FPGA SDK中使用aoc进行仿真,我已经尽可能地设置了所有环境变量,即使使用SDK中包含的
init_opencl.bat
。 为了使用visual studio链接器,我正在使用visual studio 2017 developers命令promt运行以下行:

aoc -march=emulator -v -board=a10gx my_kernel.cl -o my_kernel.aocx
但是它总是抛出一个链接器错误(错误是西班牙语的,很抱歉)

Creando biblioteca libkernel.lib y objeto libkernel.exp

libkernel.obj:错误LNK2019:símbolo externo __imp_uuutranslate_usampler_u初始化器sin resolver al que se hace referencea en la functión my_ukernel

libkernel.obj:错误LNK2019:símbolo externo floorf sin解析器al 你是否需要对acl的副本进行功能参考

libkernel.obj:错误LNK2019:símbolo外部无接收器,位于解析器al中 你是否需要对acl的副本进行功能参考

libkernel.obj:错误LNK2019:símbolo外部日志2 sin解析器al 这是一个关于公民权利和公民权利的参考文件

libkernel.obj:错误LNK2019:símbolo externo exp2 sin resolver al 这是一个关于公民权利和公民权利的参考文件

链接:错误LNK2001:símbolo externo_dlmaincrtstartup sin解析器

C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86\msvcrt.lib: 警告LNK4272:el tipo de máquina de biblioteca'x86'estáen “x64”目的地的冲突

C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86\legacy\u stdio\u definitions.lib :警告LNK4272:el tipo de máquina de biblioteca'x86'estáen “x64”目的地的冲突

libkernel.dll:致命错误LNK1120:6外部解析程序

我不知道还能做什么

注:
内核使用image2d对象,我不完全确定这些对象是否与FPGA兼容。实际上,这是另一个问题。

问题很可能是他们(Altera,现在的Intel)仍然需要在Windows上使用MSVC 2010来成功地将其库与主机项目链接

至少在哪里有这样的要求是这样的

因此,您可能有两种选择:

  • 安装MSVC 2010

  • 了解如何成功链接使用MSVC 2010构建的库


  • 更新


    我检查了我的笔记。为了能够使用VS 2015成功链接Altera库,我还额外链接了
    legacy\u stdio\u definitions.lib
    。这应该进入链接器部分的
    AdditionalDependencies
    。无法保证这也会对您的案例有所帮助,但值得一试。

    问题很可能是他们(Altera,现在是Intel)仍然需要在Windows上使用MSVC 2010来成功地将其库链接到主机项目

    至少在哪里有这样的要求是这样的

    因此,您可能有两种选择:

  • 安装MSVC 2010

  • 了解如何成功链接使用MSVC 2010构建的库


  • 更新


    我检查了我的笔记。为了能够使用VS 2015成功链接Altera库,我还额外链接了
    legacy\u stdio\u definitions.lib
    。这应该进入链接器部分的
    AdditionalDependencies
    。我不能保证这对您的案例也有帮助,但值得一试。

    首先感谢doqtor的回答…最后我终于能够编译而不需要做太多更改…实际上,如果您从Visual Studio Developers命令提示符x64运行aoc脱机编译器,大多数问题都会得到解决

    我决定干净地重新安装整个Intel FPGA SDK,这次正确地设置了每个环境变量……一切都很顺利……我能够编译和执行SDK示例

    但有一个问题无法解决…我的内核使用image2d_t对象,当然还有sampler_t…结果根据《英特尔SDK编程指南》…在使用OpenCL 1.0时,SDK不支持图像和采样器

    奇怪的是,FPGA模拟器平台确实支持它,所以我能够使用模拟器进行编译……虽然这对我来说解决不了多少问题……我决定改变我的内核,并找到一种替代映像和采样器的方法


    感谢

    首先感谢doqtor的回答…最后我终于能够编译而不需要做太多更改…实际上,如果您从Visual Studio Developers命令提示符x64运行aoc脱机编译器,大多数问题都会得到解决

    我决定干净地重新安装整个Intel FPGA SDK,这次正确地设置了每个环境变量……一切都很顺利……我能够编译和执行SDK示例

    但有一个问题无法解决…我的内核使用image2d_t对象,当然还有sampler_t…结果根据《英特尔SDK编程指南》…在使用OpenCL 1.0时,SDK不支持图像和采样器

    奇怪的是,FPGA模拟器平台确实支持它,所以我能够使用模拟器进行编译……虽然这对我来说解决不了多少问题……我决定改变我的内核,并找到一种替代映像和采样器的方法


    谢谢回答您的问题:

  • FPGA模拟器不支持x86平台,只支持x86_64(但我想你已经解决了这个问题)
  • 关于图像。SDK实际上不支持映像类型,但这并不意味着aoc在编译过程中会失败。稍后尝试运行应用程序时,您将失败

  • 回答您的问题:

  • FPGA模拟器不支持x86平台,仅支持x86_64(但