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

被折叠的 条评论
为什么被折叠?



