我问这个是因为我安装了几个并且怀疑我是否正在加载正确的动态库。
这个问题与这些问题略有不同,因为它们回答的是已安装的内容,而不是您的应用程序正在链接的内容:
最佳答案
除了@berak 的出色回答(与 version.hpp 相关):
OpenCV 2.4和OpenCV 3.0分支有不同的命名方案。
对于 OpenCV 2.4.x 我们有这样的东西(注意对于 2.4.x CV_VERSION_MAJOR
是 4):
#define CV_VERSION_EPOCH 2
#define CV_VERSION_MAJOR 4
#define CV_VERSION_MINOR 8
#define CV_VERSION_REVISION 0
对于 OpenCV 3.0.x,我们有以下内容(请注意,CV_VERSION_MAJOR
意义已更改!):
#define CV_VERSION_MAJOR 3
#define CV_VERSION_MINOR 0
#define CV_VERSION_REVISION 0
#define CV_VERSION_STATUS "-dev"
也就是说,如果您需要同时支持 2.4.x 和 3.0.x,如果您想检查 CV_VERSION_MAJOR<,代码会稍微不明显
.
我更喜欢检查 CV_VERSION_EPOCH
:
#if (defined(CV_VERSION_EPOCH) && CV_VERSION_EPOCH == 2)
# OpenCV 2.4.x stuff
#else
# OpenCV 3.0 stuff
#endif
关于c++ - OpenCv 的版本号是否有常数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22702555/