起初,用cmake将opencv编译好,并且成功引用opencv库都没有报错。但是用一下语句导入QCharts部分报错。

#include <QtCharts>
QT_CHARTS_USE_NAMESPACE

查找了一下原因,是以下部分产生冲突:

    typedef PVOID PACCESS_TOKEN;
    typedef PVOID PSECURITY_DESCRIPTOR;
    typedef PVOID PSID;
    typedef PVOID PCLAIMS_BLOB;
    typedef DWORD ACCESS_MASK;
    typedef ACCESS_MASK *PACCESS_MASK;

最后的原因是导入新的库以后:

#include <winnt.h>

这个与opencv产生了冲突。

解决办法:查找所有的.h、.cpp文件,不能包含:

using namespace cv;

注意一定要所有的文件都不能包含有这个命名空间的引用。

那么如何使用opencv里的函数呢,就是在使用每一个函数时都用:

cv::function();

这样的方法,function()代指opencv库里能替换的函数。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐