我试图在Intel FPGA SDK中编译内核以进行aoc仿真,即使使用SDK中包含的init_opencl.bat
,我也已设置了所有环境变量。
我正在使用Visual Studio 2017开发人员命令promt运行以下行以使用Visual Studio链接器:
aoc -march=emulator -v -board=a10gx my_kernel.cl -o my_kernel.aocx
但是它总是抛出一个链接器错误(该错误是西班牙语的,对此感到抱歉)。
Creando biblioteca libkernel.lib和objeto libkernel.exp
libkernel.obj:错误LNK2019:símboloexterno __imp___translate_sampler_initializer解析程序可以参考my_kernel的其他功能
libkernel.obj:错误LNK2019:símboloexterno floorf sin resolver al __acl__copysignf
libkernel.obj:错误LNK2019:símboloexterno ceilf sin resolver al __acl__copysignf
libkernel.obj:错误LNK2019:símboloexterno log2 sin resolver al __acl__sppow_approx有趣的地方咨询
libkernel.obj:错误LNK2019:símboloexterno exp2 sin resolver al __acl__sppow_approx有趣的地方咨询
LINK:错误LNK2001:símboloexterno _DllMainCRTStartup sin解析器
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.16.27023 \ lib \ x86 \ msvcrt.lib: 警告LNK4272:图书馆提示“ x86”Estáen destino de xino冲突影片“ x64”
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.16.27023 \ lib \ x86 \ legacy_stdio_definitions.lib :警告LNK4272:图书馆提示'x86'estáen destino de xino冲突影片“ x64”
libkernel.dll:致命错误LNK1120:6个externos sin解析器
我不知道该怎么办
注意: 内核使用image2d对象,但我不确定是否与FPGA兼容。其实这是另一个问题。
答案 0 :(得分:0)
很有可能的问题是,他们(Altera,现在是Intel)在Windows上仍然需要使用MSVC 2010才能成功地将其库与宿主项目链接。
至少fft-2d就是这种情况。
因此,您可能有2个选择:
安装MSVC 2010
弄清楚如何成功链接使用MSVC 2010构建的库
更新
我检查了笔记。为了能够使用VS 2015与Altera库成功链接,我还与legacy_stdio_definitions.lib
进行了链接。这应该在链接器部分的AdditionalDependencies
中。无法确保这也会对您的案件有所帮助,但是值得一试。
答案 1 :(得分:0)
首先感谢doqtor的回答...最终,我最终能够在无需进行太多更改的情况下进行编译....实际上,如果您从Visual Studio Developers Command Prompt x64运行aoc脱机编译器,则大部分问题解决了。
我决定干净地重新安装整个英特尔FPGA SDK,这次正确设置了每个环境变量...并且一切运行正常...我能够编译并执行SDK示例。
但是一个问题无法解决....我的内核使用image2d_t对象,当然还有sampler_t ....根据《英特尔SDK编程指南》证明...该SDK在使用时不支持图像和采样器OpenCL 1.0。
奇怪的是,FPGA仿真器平台确实支持它,因此我能够使用仿真器进行编译。...尽管这对我来说解决不了多.....我决定更换内核并找到一个图像和采样器的替代品。
谢谢
答案 2 :(得分:0)
回答您的问题: