C++ Qt MinGW Vimba SDK:定义标记为dllimport

C++ Qt MinGW Vimba SDK:定义标记为dllimport,c++,qt,sdk,dllimport,C++,Qt,Sdk,Dllimport,我在Windows10x64上使用Qt5.12.2和MingW7.3.0。 我想使用Allied Vision Vimba SDK,但在编译时会收到以下错误消息: C:\Program Files\Allied Vision\Vimba_3.1\VimbaCPP\Include\IFeatureObserver.h:59: Fehler: function 'AVT::VmbAPI::IFeatureObserver::~IFeatureObserver()' definition is mar

我在Windows10x64上使用Qt5.12.2和MingW7.3.0。 我想使用Allied Vision Vimba SDK,但在编译时会收到以下错误消息:

C:\Program Files\Allied Vision\Vimba_3.1\VimbaCPP\Include\IFeatureObserver.h:59: Fehler: function 'AVT::VmbAPI::IFeatureObserver::~IFeatureObserver()' definition is marked dllimport
     IMEXPORT virtual ~IFeatureObserver() {}
                      ^
IFeatureObserver.h:

#ifndef AVT_VMBAPI_IFEATUREOBSERVER_H
#define AVT_VMBAPI_IFEATUREOBSERVER_H

#include <VimbaCPP/Include/VimbaCPPCommon.h>
#include <VimbaCPP/Include/SharedPointerDefines.h>
#include <VimbaCPP/Include/Feature.h>
#include <vector>

namespace AVT {
namespace VmbAPI {

class IFeatureObserver 
{
  public:

    IMEXPORT virtual void FeatureChanged( const FeaturePtr &pFeature ) = 0;


    IMEXPORT virtual ~IFeatureObserver() {}

  protected:
    IMEXPORT IFeatureObserver() {}
    IMEXPORT IFeatureObserver( const IFeatureObserver& ) { /* No copy ctor */ }
};
typedef std::vector<IFeatureObserverPtr> IFeatureObserverPtrVector;

}} // namespace AVT::VmbAPI

#endif
\ifndef AVT\u VMBAPI\u IFEATUREOBSERVER\u H
#定义AVT_VMBAPI_IFEATUREOBSERVER_H
#包括
#包括
#包括
#包括
名称空间AVT{
名称空间VmbAPI{
类IFeatureObserver
{
公众:
IMEXPORT虚拟空隙特征已更改(常量特征ptr&pFeature)=0;
IMEXPORT虚拟~IFeatureObserver(){}
受保护的:
IMEXPORT IFeatureObserver(){}
IMEXPORT IFeatureObserver(常量IFeatureObserver&){/*无复制ctor*/}
};
typedef std::向量IFeatureObserverPtrVector;
}}//名称空间AVT::VmbAPI
#恩迪夫

这个完全相同的问题已经发布了,但我认为我不应该打开一个6年前的线程。 正如这里所描述的,这个问题似乎已经解决了。
但我真的不知道该怎么办
如前所述,我必须在makefile中定义宏
AVT_VMBAPI_CPP_EXPORTS

如何定义此宏以及该宏的位置(.pro文件是我的项目还是生成目录中的Makefile)?一个小的guid或一个示例将非常好。

我对C++非常陌生,尤其是在Windows开发中。我希望能在这里找到帮助。

我想这就是我要找的。将DEFINE+=AVT_VMBAPI_CPP_导出放入.pro文件后,错误消息消失。非常感谢你。