我正在使用 VC++ 2012 编译一个包含 2 个项目的解决方案。主库是一个类库项目,它只是输出一个 .lib 文件,第二个是一个应用程序,它使用编译后的库。
该库用于我的应用程序中的高性能数学,因此我正在考虑切换到英特尔 C++ 编译器来解决这部分的解决方案。是否可以使用英特尔 C++ 编译器构建
.lib
,然后从我的 VC++ 项目链接到该库以最终构建我的应用程序? 这篇文章描述了我想要的东西吗?
出于法律原因,我无法将应用程序项目切换到英特尔编译器。 (虽然我有应用程序的源代码,但它是由客户端编译的,他们使用VC++,我们只是库项目的作者)
ICC 和 MSVC++ 应与 ABI 兼容。 对于 C,它们使用相同的调用约定。 我认为 ICC 尝试使用兼容的 C++ 标头,因此像
std::vector<T>
这样的类型和更复杂的东西也匹配。 我非常确定 ICC 编译的代码可以调用 MSVC 库,这也要求它们就 ABI 因素达成一致。