【发布时间】:2015-12-09 04:37:50
【问题描述】:
我有一个用 gcc 编译的程序。 我得到了一个使用 Intel 编译器 (icc) 编译的静态库(.a 文件)。
如何使用该库并与该库链接? (我没有icc,对方必须使用icc才能使用Intel指令集)。
我正在尝试编译(与该库链接),但英特尔指令出错...
- 我的目标是 Intel I7。
- 我遇到的第一个错误是:“undefined reference to `_intel_fast_memcpy'”
谢谢
【问题讨论】:
-
什么错误? 如何你尝试与图书馆链接?而您的目标平台是一些基于“英特尔”的系统?
-
__intel_fast_memcpy函数看起来像是 ICC 编译器使用的内部函数,它可能是 ICC 运行时支持库的一部分。如果你没有那个,那么你真的无能为力。但你确实知道 ICC 是 free for some non-commercial uses? -
对于那个特定的函数,[它显然是一个类似 memcpy 的函数],您可以创建一个 .c 将其定义为真正的 memcpy 函数的“别名”:
extern ... _intel_fast_memcpy ... __attribute__((alias(real_memcpy)))。对于其他人来说,一个包装函数定义给定的 __intel* 函数并调用 [可能变形 args] 一个真正的函数。如果您遇到不理解的问题,可能会有解释它的文档。应该是你必须删除的可处理的函数数量 -
谷歌搜索,如果找到this article,则表明使用英特尔的链接器作为解决方案。
-
嗨,如果我要求将库作为共享库(使用英特尔编译)它会工作吗?