gcc编译调用opencv库函数遇到的问题总结

本文总结了在使用GCC编译器调用OpenCV库时可能遇到的问题,包括命名空间错误、函数声明问题以及库文件的生成。针对这些问题,提供了具体的解决方案,如引入正确的头文件、修正函数声明,并分享了如何利用pkg-config工具来管理OpenCV的编译选项。同时,还介绍了在C/C++中判断操作系统的宏定义,如WIN32、linux和编译器标识如_MSC_VER、__GNUC__。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  `PatchGenerator' in namespace `cv' does not name a type. 或者 error C2039: “PatchGenerator”: 不是“cv”的成员

   解决:

    #include <opencv2/legacy/legacy.hpp>

2. error: extra qualification ‘TLD::’ on member ‘processFrame’

   错误的原因是: 在类的定义中写了void TLD::processFrame(); 在类中应该写 void processFrame();才对. 都是很基本的错误.


3.gcc编译调用了opencv库函数的代码: 生成库,在库接口函数中,不用__declspec(dllexport)修饰,这一点与vs不同

    g++ `pkg-config --cflags --libs opencv` tld_utils.cpp ExTrackTarget.cpp TLD.cpp FerNNClassifier.cpp LKTracker.cpp tracker.cpp -fPIC -shared -o libTLD.so -I. -L.


4. c/c++中宏判断操作系统和编译器:

C++:编写跨平台程序的关键,C/C++中的内置宏定义,分两部分:
①操作系统判定:
   Windows:   WIN32
   Linux:   linux
   Solaris:   __sun

②编译器判定:
   VC:  _MSC_VER
   GCC/G++:   __GNUC__
   SunCC:   __SUNPRO_C和__SUNPRO_CC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值