C++Builder 12.2终于可以直接编译OpenCV了

已经记不得有多少年了, 在这些年的工作历程中常常收到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中直接使用, 而无需再做任何的转换了.

转载:C++Builder 12.2终于可以直接编译OpenCV了 | IT : 是工作還是嗜好?

### 集成OpenCVC++Builder 12.2 为了在C++Builder 12.2中成功集成并使用OpenCV库,需遵循特定配置流程以确保编译器能够识别和链接必要的头文件及库文件。 #### 安装OpenCV库 首先下载适用于操作系统的最新版本OpenCV安装包。对于Linux环境下的CUDA支持版本,应特别注意确认其兼容性[^1]。解压后获取`include`目录中的所有头文件以及`lib`目录内的共享对象(.so)或静态库(.a)文件。 #### 设置项目属性 打开C++Builder IDE创建一个新的控制台应用程序或其他类型的工程。通过菜单栏选择【Project】->【Options...】,展开左侧列表找到【C/C++ Compiler】分支下的【Include and Library Paths】节点: - 添加路径指向本地计算机上已解压缩的OpenCV `include` 文件夹位置; - 同样地,在同一级设置项里指定Linker输入参数,即把刚才提到过的`.so` 或 `.a` 所处的绝对地址加入到Library path 中去; #### 编写测试代码验证连接情况 下面给出一段简单的示例程序用于检测是否能正常调用OpenCV函数读取图像数据: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char* argv[]) { Mat img = imread("example.jpg", IMREAD_COLOR); // Read the file if (img.empty()) { // Check for invalid input printf("Could not open or find the image\n"); return -1; } namedWindow("Display window", WINDOW_AUTOSIZE); imshow("Display window", img); waitKey(0); // Wait indefinitely until a keypress occurs destroyAllWindows(); } ``` 上述代码片段展示了基本的图片加载显示功能,如果一切顺利的话应该可以看到窗口弹出展示选定的照片内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值