c++ - 带有 openCV 的英特尔编译器它是如何工作的

标签 c++ opencv dll compiler-construction

我有一个 C# 项目,一个包装 C++ 项目的 CLI/C++ 项目。

我已经编译了 openCV 3.0.0 并且我正在使用完整的静态链接(*.lib 没有 *.dll 文件)

因为我想使用英特尔 IPP,所以我想使用英特尔编译器来编译 C++ 项目。

起初我认为我会遇到问题,因为 OpenCV 库不是使用 Intel 编译器编译的(它们是使用 VS2012 编译器编译的)。 因此,为了尝试,我将工具集标志切换到英特尔编译器 14.0,它工作正常,我可以运行我的应用程序……并使用 openCV 和 IPP。

您能否解释一下为什么这可行?动态加载(*.dll)是否相同?或者,如果我将 openCV 与动态加载一起使用,我将需要使用英特尔编译器对其进行编译?

谢谢

最佳答案

大致上。用于生成给定机器代码的编译器并不重要(除了代码的质量)。重要的是要遵守一些约定:目标代码文件的格式、命名外部对象和 ABI(调用函数的方式)。

关于c++ - 带有 openCV 的英特尔编译器它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969471/

相关文章:

在 C 程序中使用的 C++ DLL

java - 如何使用 Java 获得 Windows XP 的 Windows 控制权

c++ - Visual Studio 2015 认为 Windows 10 是 Windows XP 之前的版本

c++ - 如何将较大的数组缩小为较小的数组?

c++ - 如何在 Qt 中覆盖 QApplication::notify

python - py2exe在导入opencv时由于缺少DLL而无法创建EXE

c++ - OpenCV:从 std::in 读取图像?

ubuntu - 在 Ubuntu 上安装 OpenCV-2.4.3 时出错

c - C 中的 OpenMP 在 Windows 中使用 GCC 创建 DLL

java - 如何设置诺基亚应用程序开发环境?