我有一个C#项目,一个包装C ++项目的CLI / C ++项目。
我编译了openCV 3.0.0,我使用的是完整的静态链接(* .lib没有* .dll文件)
因为我想使用Intel IPP我想使用intel Compiler来编译C ++项目。
起初我认为我会遇到问题,因为OpenCV libs没有用英特尔编译器编译(它们是用VS2012编译器编译的)。 所以只是为了尝试我将工具集标志切换到英特尔编译器14.0并且它工作,我可以运行我的应用程序...并使用openCV和IPP。
您能否解释一下为什么会这样?动态加载(* .dll)是否相同?或者如果我使用openCV进行动态加载,我需要用英特尔编译器编译它们吗?
由于
答案 0 :(得分:2)
粗略。用于生成给定机器代码的编译器并不重要(除了代码的质量)。重要的是遵守一些约定:目标代码文件的格式,命名外部对象和ABI(调用函数的方式)。