C++生成动态链接库(Qt)
在Qt中,对于只有一个构造函数的C++类,按照如下方法即可成功生成动态库
#if defined(MYLABLEDLL_LIBRARY)
# define MYLABLEDLL_EXPORT Q_DECL_EXPORT
#else
# define MYLABLEDLL_EXPORT Q_DECL_IMPORT
#endif
class MYLABLEDLL_LIBRARY A {
public:A();
~A();
};
在项目工程中是否定义MYLABLEDLL_LIBRARY宏就能决定接口是导入还是导出。
在生成dll的工程中定义,则为输出接口;在使用dll的工程中不定义,则为输入接口;
问题:构造函数存在重载情况时动态库的生成
#if defined(MYLABLEDLL_LIBRARY)
# define MYLABLEDLL_EXPORT Q_DECL_EXPORT
#else
# define MYLABLEDLL_EXPORT Q_DECL_IMPORT
#endif
class MYLABLEDLL_LIBRARY A {
public:A();
A(int);
~A();
};
这个类中存在两个构造函数
A();
A(int);
如果再使用上面的方式生成动态库则会报错
error: '__declspec(dllexport)' cannot be applied to more than one default constructor in 'A'
error: C2668: “A::A”: 对重载函数的调用不明确
请问有没有相关的解决方案?