带有 openCV 的英特尔编译器它是如何工作的
Intel compiler with openCV how does it work
我有一个 C# 项目,一个包含 C++ 项目的 CLI/C++ 项目。
我已经编译了 openCV 3.0.0 并且我正在使用完全静态 link(*.lib 没有 *.dll 文件)
因为我想使用英特尔 IPP,所以我想使用英特尔编译器来编译 C++ 项目。
起初我认为我会遇到问题,因为 OpenCV 库不是用英特尔编译器编译的(它们是用 VS2012 编译器编译的)。
所以只是为了尝试,我将工具集标志切换到英特尔编译器 14.0 并且它起作用了,我可以 运行 我的应用程序...并使用 openCV 和 IPP。
你能解释一下为什么这可能吗?动态加载(*.dll)是否相同?或者如果我将 openCV 与动态加载一起使用,我将需要使用英特尔编译器对其进行编译?
谢谢
大概。用于生成给定机器代码的编译器并不重要(除了代码的质量)。重要的是要遵守一些约定:目标代码文件的格式、命名外部对象和 ABI(调用函数的方式)。
我有一个 C# 项目,一个包含 C++ 项目的 CLI/C++ 项目。
我已经编译了 openCV 3.0.0 并且我正在使用完全静态 link(*.lib 没有 *.dll 文件)
因为我想使用英特尔 IPP,所以我想使用英特尔编译器来编译 C++ 项目。
起初我认为我会遇到问题,因为 OpenCV 库不是用英特尔编译器编译的(它们是用 VS2012 编译器编译的)。 所以只是为了尝试,我将工具集标志切换到英特尔编译器 14.0 并且它起作用了,我可以 运行 我的应用程序...并使用 openCV 和 IPP。
你能解释一下为什么这可能吗?动态加载(*.dll)是否相同?或者如果我将 openCV 与动态加载一起使用,我将需要使用英特尔编译器对其进行编译?
谢谢
大概。用于生成给定机器代码的编译器并不重要(除了代码的质量)。重要的是要遵守一些约定:目标代码文件的格式、命名外部对象和 ABI(调用函数的方式)。