C++ Qt MinGW Vimba SDK:定义标记为dllimport
我在Windows10x64上使用Qt5.12.2和MingW7.3.0。 我想使用Allied Vision Vimba SDK,但在编译时会收到以下错误消息: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
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文件后,错误消息消失。非常感谢你。