我在Linux上运行,我得到了一个由英特尔编译器编译的库(.a)。
我试图链接这个静态库(我使用g ++)并得到链接错误:
undefined reference to intel_fast_memcpy
我要求将库作为共享库(.so),这也是由intel编译器编译的,我也遇到了同样的错误。
当我使用gcc时,如何使用由英特尔编译器编译的库?
答案 0 :(得分:1)
据我所知,没有办法将C ++客户端代码链接到使用不同编译器构建的C ++库(即使是相同的编译器名称,但不同的版本也不起作用)。 C ++ -linkage不是stanrardised。
然而,C-连锁是。如果你包装一个库来将符号导出为C,(代码中的外部“C”{} - 块)你可以将这些库与任何编译器一起使用,甚至不仅仅使用C / C ++;为此,在您的情况下,wrapper-lib应该使用intel-compiler构建。