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