已经记不得有多少年了, 在这些年的工作历程中常常收到C++Builder的客户询问如何在C++Builder中使用OpenCV, 也有少数Delphi的使用者曾询问过如何在Delphi中使用OpenCV. 以前的答案都是请这些客户去下载由其他C/C++工具编译完成的OpenCV DLLs, 再使用C++Builder提供的工具转换成C++Builder使用的格式和Name Mangling之后才能使用. 这实在有点麻烦, 主要的原因是以前C++Builder没有支持CMake而且Borland的C/C++编译程序没有现代化. 但在C++Builder于12.2终于完成基于Clang的现代化而且完整支持CMake之后, 12.2版的C++Builder终于可以接编译OpenCV而且也可以编译许多流行的第3方C/C++函式库, 例如Catch 2, Google Test和vtk等等.
1、C++Builder的产品经理David写了一篇非常详细的文章介绍12.2新的64位编译以及如何编译OpenCV, 我强烈建议想使用C++Builder和OpenCV的朋友可以参考David的文章:
https://blogs.embarcadero.com/introducing-amazing-cmake-support-in-cbuilder-12-2/
但您如果想使用C++Builder 12.2直接编译OpenCV, 那么除了阅读David的文章并遵照其中的步骤之外, 您必须注意下面的几个小步骤才不会碰到错误.
1.在您于C++Builder中使用GetIt Package Manager安装完CMake 3.3之后, 请记得把CMake 3.3的目录加入到您系统的执行路径中, 例如笔者安装完CMake 3.3之后它位于:
C:\Users\Gordon\Documents\Embarcadero\Studio\23.0\CatalogRepository\CMake-3.30\bin
请把它加入系统/用户Path中
2.请使用RAD Studio的Command Prompt开启命令窗口
再转换到您从https://github.com/Embarcadero/RADStudio12Demos下载解开的CMake目录,例如:
e:\RADStudio12Demos\CPP\CMake\
再于e:\RADStudio12Demos\CPP\CMake\中执行make-opencv.bat, 即可成功编译OpenCV了.由于OpenCV是一个巨大的函式库, 而且编译OpenCV之前要先编译vtk, 所以这将是一个耗时的工作, 例如在笔者这个缓慢笔电的虚拟机中已经编译了8个小时仍未完成, 希望各位能够很快的编译完OpenCV并且直接在C++Builder中直接使用, 而无需再做任何的转换了.